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

MySQL简单INNER JOIN查询报错:未知列'%all%'问题求助

MySQL LIKE 查询报错 #1054 的解决方案

嘿,我一眼就发现问题所在啦!你的报错原因其实特别简单——你把字符串匹配条件用反引号包裹了。

报错根源

在MySQL里,反引号 ` 是用来包裹标识符的(比如表名、列名这类数据库对象名称),而字符串常量必须用单引号 ' 来包裹。你写的 WHERE cat_p.type LIKE %all%`` 中,%all% 被反引号括起来后,数据库会把它当成一个列名去解析,自然就会抛出 #1054 - Unknown column '%all%' in 'where clause' 的错误。

修正后的SQL语句

只需要把 %all% 换成单引号包裹,就能正常运行了:

SELECT `cat`.`brand_name` 
FROM `ps_product_brand` AS `cat` 
INNER JOIN `ps_product_custom_statistics_weekly` AS `cat_p` 
  ON `cat_p`.`id_product` = `cat`.`id_product` 
WHERE `cat_p`.`type` LIKE '%all%' 
  AND `cat_p`.`rank` <= 16;

小提示

  • 只有当你的列名/表名和MySQL关键字(比如type、rank这类)重名时,才需要用反引号包裹标识符;
  • 所有字符串类型的查询条件,都要用单引号来包裹,避免被数据库误解析成标识符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:21:42