mysql - SQL : "Strict equals" doesn't work with LIKE % if last repeats a few times

标签 mysql sql-like

在我的数据库列中,有列“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/

相关文章:

python - 在 python 中操作字符串

mysql - MySQL LIKE Query中使用OR比较多个字段

php - Codeigniter 3 中的 mysql 查询

sql-server - 如何使用like函数SQL比较字符串的一部分

mysql - 从表中获取值并将其传递到 url 中

mysql - 如何将%放入字符串中

mysql - 高级 MySQL 模式匹配(超越 LIKE...%)

不包含Y但包含X的SQL选择字符串

mysql - 在mysql数据库中触发之前

c# - cpanel远程连接mysql数据库