Ошибка в большом MySql Query - PullRequest
1 голос
/ 03 июля 2011

Я пытаюсь использовать следующий запрос MySql, однако он возвращает синтаксическую ошибку в 'WHERE FIND_IN_SET (' query ', Alternate_name)' в строке 3. Я пытался найти его в Google и просмотреть руководство MySql, однако я не могу найти, как это исправить.

Запрос:

SELECT name, 'Events' as source FROM feed_events WHERE name LIKE '".$query."%' UNION ALL    
SELECT name, 'Venues' as source FROM feed_venues WHERE name LIKE '".$query."%' UNION ALL
SELECT name, 'Locations' as source FROM feed_locations WHERE name LIKE '".$query."%' OR WHERE FIND_IN_SET('".$query."', Alternate_name)

В операторе select, в котором возникла проблема, я пытаюсь выбрать названия городов, которые лучше всего соответствуют введенной пользователем строке ($ query). В первом столбце указано название города, а во втором - список альтернативных названий этого города через запятую. Find_in_set () должен искать элементы в этом столбце, чтобы найти лучшее соответствие. Есть ли способ исправить эту синтаксическую ошибку, или find_in_set () не идеальный выбор для того, что я пытаюсь сделать?

1 Ответ

0 голосов
/ 03 июля 2011

Вам не нужно второе ключевое слово WHERE. Вы можете иметь 2 вещи в OR, как это

WHERE expression1 OR expression2

например:

WHERE field = '1' OR field = '2'
...