我正在尝试使用以下 MySql 查询,但它在第 3 行的“WHERE FIND_IN_SET('query', Alternate_name)”处返回语法错误。我尝试使用谷歌搜索并查看 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() 不是我想要做的事情的理想选择?
最佳答案
您不需要第二个 WHERE
关键字。你可以像这样在 OR
中包含 2 个东西
WHERE expression1 OR expression2
例如:
WHERE field = '1' OR field = '2'
关于php - 大型 MySql 查询中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562718/