hex
Новичок
SELECT LIKE и %
Есть таблица в которой есть поле
text (текстовое поле)
а также есть форма в которой среди прочего есть текстовое поле
txt (т.е. $txt)
Задача такая - нужно чтобы при поиске сравнивались значения $txt с полем text
и если совпадение есть то выдавался результат что "совпадения есть" (это все реализовано через mysql_numrows не в этом вопрос) а если нет то соответственно...
Вообщем запрос такой:
SELECT text from table WHERE text LIKE '%".$txt."%' ORDER BY id DESC
Все работает но ...
скажем переменная $txt = "privet"
и в базе есть такое слово, тогда результат есть. Это нормально.
Но вот потом вводим в текстовое поле "pr" ($txt = "pr"), также выдает что есть совпадения.
Я понимаю что это % работают, но вот мне нужно
чтобы искалось именно "privet", а не "pr", "pri" или "p". Кроме того, нужно чтобы и в слове "privetmedved" также было совпадение. Как быть? Я конечно менял и так и сяк, но не удолетворяет результат моим условиям.
Неужели в регулярки лезть
?
и кстати если в строке два слова privet medved то НЕ выдает совпадений. Выдает только если слово одно. Так что наверное нужно как то со строкой работать? Разбивать на слова что ли? Как это сделать (если здесь собака зарыта). Тоже регулярные выражения? Или есть способ проще?
Т.е. либо с запросом что то делать либо со строкой. Подскажите как лучше?
-~{}~ 04.08.06 20:32:
Так вот обратил внимание на
str_word_count
Извините наверное офтоп здесь уже получается. Но может и с mysql запросом можно что то сделать?
Есть таблица в которой есть поле
text (текстовое поле)
а также есть форма в которой среди прочего есть текстовое поле
txt (т.е. $txt)
Задача такая - нужно чтобы при поиске сравнивались значения $txt с полем text
и если совпадение есть то выдавался результат что "совпадения есть" (это все реализовано через mysql_numrows не в этом вопрос) а если нет то соответственно...
Вообщем запрос такой:
SELECT text from table WHERE text LIKE '%".$txt."%' ORDER BY id DESC
Все работает но ...
скажем переменная $txt = "privet"
и в базе есть такое слово, тогда результат есть. Это нормально.
Но вот потом вводим в текстовое поле "pr" ($txt = "pr"), также выдает что есть совпадения.
Я понимаю что это % работают, но вот мне нужно
чтобы искалось именно "privet", а не "pr", "pri" или "p". Кроме того, нужно чтобы и в слове "privetmedved" также было совпадение. Как быть? Я конечно менял и так и сяк, но не удолетворяет результат моим условиям.
Неужели в регулярки лезть

и кстати если в строке два слова privet medved то НЕ выдает совпадений. Выдает только если слово одно. Так что наверное нужно как то со строкой работать? Разбивать на слова что ли? Как это сделать (если здесь собака зарыта). Тоже регулярные выражения? Или есть способ проще?
Т.е. либо с запросом что то делать либо со строкой. Подскажите как лучше?
-~{}~ 04.08.06 20:32:
Так вот обратил внимание на
str_word_count
Извините наверное офтоп здесь уже получается. Но может и с mysql запросом можно что то сделать?