The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"select на perл"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"select на perл" 
Сообщение от pheonix Искать по авторуВ закладки(ok) on 28-Июл-05, 11:20  (MSK)
надо сделать выборку такого рода, есть поле с данными и есть переменная со одним словом или несколькими как сделать запрос так чтобы если слова в переменной встречались то запись выбиралась если нет то ессно нет, такон возможно или нет? просто мне надо не целиком поле сравнивать а найти совпадения
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • select на perл, ihor, 12:30 , 28-Июл-05, (1)  
    • select на perл, pheonix, 13:03 , 28-Июл-05, (2)  
      • select на perл, ihor, 13:25 , 28-Июл-05, (3)  
      • select на perл, Simps, 13:34 , 28-Июл-05, (4)  
        • select на perл, pheonix, 14:54 , 28-Июл-05, (5)  
          • select на perл, ihor, 16:23 , 28-Июл-05, (6)  
            • select на perл, pheonix, 08:24 , 29-Июл-05, (7)  
              • select на perл, pheonix, 08:40 , 29-Июл-05, (8)  

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "select на perл" 
Сообщение от ihor Искать по авторуВ закладки on 28-Июл-05, 12:30  (MSK)
use strict;
my($tblname, $fldname, @words, $sql_str, @req_strings, $w);

$tblname = 'table';
$fldname = 'field';

@words = qw(word1 word2 word3 word3 word4);
$sql_str = "select * from $tblname where ";
@req_strings = ();

for $w (@words) {
push(@req_strings, "$fldname like '%$w%'");
} # for

$sql_str .= join(' or ', @req_strings) . ';';
print $sql_str, "\n";

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "select на perл" 
Сообщение от pheonix Искать по авторуВ закладки(ok) on 28-Июл-05, 13:03  (MSK)
>use strict;
>my($tblname, $fldname, @words, $sql_str, @req_strings, $w);
>
>$tblname = 'table';
>$fldname = 'field';
>
>@words = qw(word1 word2 word3 word3 word4);
>$sql_str = "select * from $tblname where ";
>@req_strings = ();
>
>for $w (@words) {
> push(@req_strings, "$fldname like '%$w%'");
>} # for
>
>$sql_str .= join(' or ', @req_strings) . ';';
>print $sql_str, "\n";


это всё канечна прекрасно написано мне нрависять тока я не понял чё тут написано у меня короче строиться запрос так

$str='find';
$rq=$dbh->Query("select * from table where (data='$str')");

дак вот если поле дата целиком соответсвует переменной $str то у меня эта запись выбереться, потовряю вопрос ещё раз как мне запросом через перл выбрать все записи которые совпадают не всем контентом поля, а тока какому нить слову лежащему в переменно $str

наприме
есть такие записи в поле DATA
1. "find srt sirb by name opennetdjs;lkdssad ajsdl"
2. "find srt sirb by name openсвnetdjs;lkdssad ajsdl"
3. "find s-в8а tdjs;lkdssad ajsdl"
4. "щзуopennetттуеfind s-в8а tdjs;lkdssad ajsdl"
и так балее

в переменной лежит вот что $str='opennet';
каким запросом мне сверить содержание переменной и не полной совпадение поля DATA а частиино
по запросу должны выбраться 1 и 4 записи, как такой запрос сформировать?
если кто не понял то могу повтариться ещё раз

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "select на perл" 
Сообщение от ihor Искать по авторуВ закладки on 28-Июл-05, 13:25  (MSK)
А Вы запустите, то что я нарисовал и посмотрите на результат
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "select на perл" 
Сообщение от Simps Искать по авторуВ закладки(ok) on 28-Июл-05, 13:34  (MSK)
>>use strict;
>>my($tblname, $fldname, @words, $sql_str, @req_strings, $w);
>>
>>$tblname = 'table';
>>$fldname = 'field';
>>
>>@words = qw(word1 word2 word3 word3 word4);
>>$sql_str = "select * from $tblname where ";
>>@req_strings = ();
>>
>>for $w (@words) {
>> push(@req_strings, "$fldname like '%$w%'");
>>} # for
>>
>>$sql_str .= join(' or ', @req_strings) . ';';
>>print $sql_str, "\n";
>
>
>это всё канечна прекрасно написано мне нрависять тока я не понял чё
>тут написано у меня короче строиться запрос так
>
>$str='find';
>$rq=$dbh->Query("select * from table where (data='$str')");
>
>дак вот если поле дата целиком соответсвует переменной $str то у меня
>эта запись выбереться, потовряю вопрос ещё раз как мне запросом через
>перл выбрать все записи которые совпадают не всем контентом поля, а
>тока какому нить слову лежащему в переменно $str
>
>наприме
>есть такие записи в поле DATA
>1. "find srt sirb by name opennetdjs;lkdssad ajsdl"
>2. "find srt sirb by name openсвnetdjs;lkdssad ajsdl"
>3. "find s-в8а tdjs;lkdssad ajsdl"
>4. "щзуopennetттуеfind s-в8а tdjs;lkdssad ajsdl"
>и так балее
>
>в переменной лежит вот что $str='opennet';
>каким запросом мне сверить содержание переменной и не полной совпадение поля DATA
>а частиино
>по запросу должны выбраться 1 и 4 записи, как такой запрос сформировать?
>
>если кто не понял то могу повтариться ещё раз


А если бы пошел бы на dev.mysql.com и почитал про синктаксис SELECT то уверяю тебя на 100%, ты бы сюда не писал

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "select на perл" 
Сообщение от pheonix Искать по авторуВ закладки(ok) on 28-Июл-05, 14:54  (MSK)
вобщем сходил я куда над там маны тока для 4 версии а для третей нету, вот я чего не понимаю на форуме это понапишут тонны текста, нет чтобы просто пару строк кода кинуть или хотя не прошу писать, а как просто запрос сделать такой я сам его преобразую
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "select на perл" 
Сообщение от ihor Искать по авторуВ закладки on 28-Июл-05, 16:23  (MSK)
select * from table where field like '%word1%' or field like '%word2%' or field like '%word3%' or field like '%word3%' or field like '%word4%';

-- это то, что генерировал мой скрипт по набору слов, имени таблицы и поля

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "select на perл" 
Сообщение от pheonix Искать по авторуВ закладки(ok) on 29-Июл-05, 08:24  (MSK)
>select * from table where field like '%word1%' or field like '%word2%'
>or field like '%word3%' or field like '%word3%' or field like
>'%word4%';
>
>-- это то, что генерировал мой скрипт по набору слов, имени таблицы
>и поля


аха вобщем работает тока как-то странно некоторые записи выцыпляет в которых нет этих слов:) ну всё равно спасибо

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "select на perл" 
Сообщение от pheonix Искать по авторуВ закладки(ok) on 29-Июл-05, 08:40  (MSK)
а нет всё ок тока он не понимает что [ё и е] [и и й] это разное:)
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру