MySQL хитрая выборка, возможно?
Имеется очень большая таблица, сотни тысяч/миллионы записей, сотни МБ информации. Это каталог по деталям. У каждой детали есть код вида: "55435/ABC1234", либо "54 RUDL edj/135", "43-45.6654 БОЛТ" и т.д. Вобщем произвольная строка символов.
Сейчас реализован поиск по коду методом LIKE %искомый код% Необходимо сделать поиск также по коду, но чтобы можно было игнорировать некоторые символы (например: точка, пробел, тире). Допустим вбили мы в поиск "34567a", а должна найтись строка с кодом "12.3.4-56 7abc". Но в то же время если мы вбиваем "3.4-56 7a" чтобы данная строка тоже находилась. Первое что приходит в голову, создать дополнительное поле, которое будет содержать эти коды, с вырезанными "специальными символами". И осуществлять поиск по нему. А другого какого-нибудь хитрого способа тут не существует? Можно ли это сделать иначе, не создавая большой нагрузки на сервер? |
в муське есть regexp, однако нагрузка. Обычно подобные таблицы оптимизируют, что и является хитрым способом.
|
Gozar,
Спасибо, не знал что есть regexp, пригодится для формирования дополнительного поля. Думаю остановиться на том варианте что написал выше. |
Часовой пояс GMT +3, время: 00:19. |