在我的数据库列中,有列“tags”和“city”。因为我需要搜索我在 WHERE
子句中多次使用 LIKE %
的确切单词,即
SELECT ... WHERE `tags` LIKE '$keywords %' OR `tags` LIKE '% $keywords %' OR `tags` LIKE '% $keywords'"
效果很好,但如果我将 AND city='".$city."'
添加到 WHERE
子句中,SQL 会忽略它,我会得到关键字的所有结果(标签),即使我选择了数据库列“城市”的任何行中都不存在的特定城市。
最佳答案
在您的 or 语句周围添加圆括号(运算符优先级问题)
where
(`tags` LIKE '$keywords %' OR `tags` LIKE '% $keywords %' OR `tags` LIKE '% $keywords'")
AND `city` = '".$city."'
关于mysql - SQL : "Strict equals" doesn't work with LIKE % if last repeats a few times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215250/