You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL多列关键词查询报错求助:按分类筛选检索图书多字段内容

正确的多字段模糊查询实现方案

可用的SQL语句

SELECT * FROM book 
WHERE category = 'Fiction' 
AND (booktitle LIKE '%King%' OR author LIKE '%King%' OR publisher LIKE '%King%' OR `language` LIKE '%King%');

错误原因说明

你之前的写法不符合SQL语法规范:多个字段不能用逗号连接后共用一个LIKE条件,必须为每个要检索的字段单独编写LIKE匹配逻辑,并用OR连接,表示任意一个字段包含关键词即符合要求。同时要用括号包裹这些OR条件,保证逻辑优先级——先判断字段是否匹配关键词,再和分类筛选条件做“且”判断。

另外注意:language是部分数据库(如MySQL)的保留字,直接使用可能触发语法错误,建议用反引号`将字段名包裹起来。

可选优化建议

  • 若数据库数据量较大,%关键词%这种前后都加通配符的模糊查询会导致字段索引失效,查询速度变慢。如果业务场景允许,可以调整为'King%'(仅后缀模糊匹配)来利用字段索引;或者给需要检索的字段创建全文索引,使用全文检索语法提升效率。

内容的提问来源于stack exchange,提问作者user8015999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:15:35