поиск строки и числа в таблице - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть некоторые проблемы в поиске.У меня есть таблица classDetails и у меня есть className, classNumber, classSubject.Теперь в имени класса будет такой набор данных, как.информатика, компьютерная техника, электротехника и т. д. в предметной области данные будут похожи.IT, EEE, MEC и т. Д. ... в номере класса данные будут похожи.233, 3213, 12 и т. Д. В этом случае, если пользователь выполняет поиск по таблице, которую он использовал для поиска, например 233, или eee 12 и т. Д.мне лучший поисковый запрос для этого ..

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Вы можете попробовать

SELECT * FROM classes_detail
WHERE classDeleted = 0 
  AND LOWER(CONCAT_WS(' ',subject,class_num)) = LOWER(your_param)

или (чтобы найти больше свободного текста)

SELECT * FROM classes_detail
WHERE classDeleted = 0 
  AND (LOWER(CONCAT_WS(' ', subject, class_num)) = LOWER(your_param)
   OR LOWER(subject) = LOWER(your_param)
   OR LOWER(class_num) = LOWER(your_param))
0 голосов
/ 23 ноября 2011

Бесплатный поиск текста - огромная тема (просто спросите Google!), И есть множество способов, как вы можете подойти к этому. Если ваши данные хорошо структурированы, довольно статичны и относительно малы (т. Е. У субъекта класса есть только 5-10 вариантов, таких как IT, EEE, MEC, которые редко меняются), вы можете захотеть уточнить параметры поиска для пользователей, чтобы они явно выберите, кого из них они ищут.

В качестве альтернативы вы можете изучить Опции полнотекстового поиска MySQL . Или вы можете даже подойти и взглянуть на автономное решение, такое как Lucene (это всего лишь один из вариантов, таких как много).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...