2012-04-09 4 views
1

У меня есть средство поиска, но вы хотите, чтобы иметь возможность разрешать поиски ничего, вместо этого просто перечисляя категории товаров. Довольно стандартный материал.mysql матч против подстановочных знаков

Поэтому, когда пользователь не вводит поисковый запрос и просто выбирает категорию, я хочу, чтобы мое приложение находило все, например. "cat_id = 1".

Я пробую следующее, и я пробовал несколько разных методов, но не радость и не хочу прибегать к написанию разных запросов для разных сообщений, если я могу помочь.

В таблице Я ищу на имеет индекс полнотекстового на колонке под названием «название», и я пытаюсь:

select col_name from tablename where (MATCH(title) AGAINST ('*' IN BOOLEAN MODE)) 

Но не получить никаких результатов вообще, это подстановочные разрешено?

ответ

1

Использование * не поможет. См. Использование на сайте MySQL:

MATCH() принимает список, разделенный запятой, который называет столбцы для поиска. AGAINST берет строку для поиска и необязательный модификатор, указывающий, какой тип поиска выполнять. Строка поиска должна быть литеральной строкой, а не переменной или именем столбца.

Если пользователь не вводит никаких условий поиска, разве вы не должны просто опустить это конкретное условие WHERE?

+0

Да, я знаю, что могу это сделать, мне просто не нравятся грузы «если», если я могу помочь. Спасибо за ответ. –

Смежные вопросы