URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5376
[ Назад ]

Исходное сообщение
"MySQL LIKE (выводит не все найденные строки)"

Отправлено Fra , 19-Ноя-07 17:26 
код
$aann = $_POST['ann'];
$result = mysql_query("SELECT * FROM company WHERE name_c LIKE '%$aann%' ");

где ann у нас вводится в форме поиска как - "com".
применяемый к таблице MySQL:

------------------------
id | name_c
------------------------
1 | CompanyTrust
2 | TransCompany
3 | Company
------------------------

на выходе выдает лишь: CompanyTrust, TransCompany.

Почему не выводится строка с Company. В чем может быть подвох?


Содержание

Сообщения в этом обсуждении
"MySQL LIKE (выводит не все найденные строки)"
Отправлено v.i.t , 19-Ноя-07 18:48 
русская 'С'

"MySQL LIKE (выводит не все найденные строки)"
Отправлено Fra , 20-Ноя-07 10:00 
>русская 'С'

Переименовала название компании, теперьоно точно с английской С, результат тот же.


"MySQL LIKE (выводит не все найденные строки)"
Отправлено Fra , 20-Ноя-07 10:02 
>русская 'С'

Переименовала название компании, теперь оно точно с англ. С - результат тот же.


"MySQL LIKE (выводит не все найденные строки)"
Отправлено mirya , 20-Ноя-07 16:12 
русская 'о'?


"MySQL LIKE (выводит не все найденные строки)"
Отправлено Fra , 21-Ноя-07 11:15 
>русская 'о'?

Нет, русских букв там нет вообще. Так как названия переименовывались в совершенно другие.


"MySQL LIKE (выводит не все найденные строки)"
Отправлено tux2002 , 22-Ноя-07 08:13 
>[оверквотинг удален]
>id | name_c
>------------------------
>1 | CompanyTrust
>2 | TransCompany
>3 | Company
>------------------------
>
>на выходе выдает лишь: CompanyTrust, TransCompany.
>
>Почему не выводится строка с Company. В чем может быть подвох?

В PHP что то неправильно с циклом по курсору.
В mysql тот же запрос попробуйте.


"Долгожданный правильный ответ."
Отправлено Виктор , 25-Авг-08 14:13 
>>на выходе выдает лишь: CompanyTrust, TransCompany.
>>
>>Почему не выводится строка с Company. В чем может быть подвох?
>
> В PHP что то неправильно с циклом по курсору.
>В mysql тот же запрос попробуйте.

Везде всё правильно. Подвох в том, что в запросе указано '%$aann%', а символ '%' означает любой один или более симоволов. В строке 'Company' перед искомой 'com' нет ни одного сомвола, поэтому эта строка не фигурирует в результате.

Всё будет работать, если вместо "name_c LIKE '%$aann%'" в запросе написать "name_c LIKE '%$aann%' OR name_c LIKE '$aann%' OR name_c LIKE '%$aann'".

Учите мускул, товарищи умники.

З.Ы. Над русской 'С' поржал от души, более невменяемого предположения касательно данной ситуации даже представить не мог.


"RE: Долгожданный правильный ответ."
Отправлено юрий , 10-Ноя-08 04:16 
[псевдо]умник виктор.
вообще то символ % означает любое количество символов, В ТОМ ЧИСЛЕ и отсутсвие символа...
а есои вы каждый раз вместо "name_c LIKE '%$aann%'" пишите "name_c LIKE '%$aann%' OR name_c LIKE '$aann%' OR name_c LIKE '%$aann'" мне вас очень жаль, этим вы только увеличиваете нагрзку на сервак, совершенно неоправдано...
у меня  "name_c LIKE '%$aann%'" находит все вхождения в том числе и с начала строки...

одно лишь утешает, вы ответили почти год спустя...


"Долгожданный правильный ответ."
Отправлено Сводс , 11-Июл-12 02:54 
>[оверквотинг удален]
>>В mysql тот же запрос попробуйте.
> Везде всё правильно. Подвох в том, что в запросе указано '%$aann%', а
> символ '%' означает любой один или более симоволов. В строке 'Company'
> перед искомой 'com' нет ни одного сомвола, поэтому эта строка не
> фигурирует в результате.
> Всё будет работать, если вместо "name_c LIKE '%$aann%'" в запросе написать "name_c
> LIKE '%$aann%' OR name_c LIKE '$aann%' OR name_c LIKE '%$aann'".
> Учите мускул, товарищи умники.
> З.Ы. Над русской 'С' поржал от души, более невменяемого предположения касательно данной
> ситуации даже представить не мог.

бездарный ты, иди учи албанский. Херню написал какую то