проблема при Поиске

Rus

Guest
проблема при Поиске

Мне нужно придумать запрос который будет искать слова, а не сочитания символов. Тоесть при поиске AMD я должен получить строки где встречается AMD с пробелами по сторонам, а не blablaAMD

Запрос вида:

SELECT * FROM table WHERE name LIKE '%AMD%';

Выведет и AMD и AMDblabla и blablaAMD но 100% будут выведены все строки где встречается AMD

Запрос вида:

SELECT * FROM table WHERE name LIKE '% AMD %';

Выведет только AMD c пробелами по сторонам. НО! Если слово в начале строки, то условие не выполняется т.к. нет пробела перед словом!

Если выход?
 

Rus

Guest
alpine
помоги найти. Что-то запрос для поиска придумать не могу
 

Romashov

экспериментатор
Напишите так:
SELECT * FROM table WHERE name='AMD';
глупость же посоветовал
FULLTEXT search попробуй

~
или на крайний случай
name LIKE '% AMD %' OR name LIKE 'AMD %' OR name LIKE '%.AMD %' OR name LIKE '%\nAMD %'
 

Rus

Guest
http://dev.mysql.com/doc/refman/4.0/ru/regexp.html

[[:<:]], [[:>:]] Эти выражения устанавливают соответствие с нулевой строкой в начале и в конце слова соответственно. Слово определяется как последовательность символов слова, которой не предшествуют и за которой не следуют символы слова. Под символом слова понимается любая буква или цифра (как определено в ctype(3)) или подчеркивание (_).
mysql> SELECT "a word a" REGEXP "[[:<:]]word[[:>:]]"; -> 1
mysql> SELECT "a xword a" REGEXP "[[:<:]]word[[:>:]]"; -> 0
 
Сверху