Отборка из mysql

goacher

Новичок
Отборка из mysql

Как составить запрос чтобы при поиске по базе я задал например DP450 а в результаты отборки попали такие значения как
DP-450
Lg DP 450
DP450
?

Разбивать спроку DP450 и после каждой буквы ставить знак '%' ?
 

newARTix

Новичок
ну если брать конкретно этот пример, для него достаточно разбить строку preg_split() по границе букв и цифр (я не спец в регулярках, на вскидку не скажу), и искать %DP%450%, а если таблицы MyISAM, то лучше юзать полнотекстовый поиск.
 

goacher

Новичок
а если не для для конкретного случая, то разбить запрос %D%P%4%5%0% - праильно??
 

LONGMAN

Dark Side of the Moon..
Даже подумать страшно как долго будет искать в таблице где больше 100K записей ..
 

newARTix

Новичок
goacher
ну как вариант можно еще завести дополнительное поле, в котором хранить только буквы и цифры из названия товара, удаляя все спец.символы и пробелы.
То есть для указанных трех товаров это поле будет иметь значение:
DP450
LgDP450
DP450

И прекрасно найдется по простому условию %DP450%. Поиск вообще субъективная фигня, тут думать надо :)

%D%P%4%5%0% я думаю неправильно для любого случая. Во-первых ресурсоемко, во-вторых слишком велика вероятность ложного срабатывания.
 

Фанат

oncle terrible
Команда форума
заранее нормализовывать данные и записывать в отдельную колонку
 
Сверху