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

MySQL JOIN的ON子句中能否使用LIKE语句匹配相似产品名?

当然可以在MySQL JOIN的ON子句中使用LIKE语句!

完全没问题,而且你的场景正好是LIKE关联的典型应用场景——当两张表的关联字段不是完全等值,但存在包含/前缀匹配关系时,LIKE就能完美解决你的匹配需求。

针对你的情况:new_product表的产品名末尾带有额外字符(比如"Milk Fr"),而product_detail表中对应的是完整的基础名称(比如"Milk"),我们可以通过让new_product的产品名匹配product_detail产品名的前缀来实现关联。具体的SQL写法如下:

SELECT np.product_name AS new_product_name, pd.*
FROM new_product np
INNER JOIN product_detail pd
  ON np.product_name LIKE CONCAT(pd.product_name, '%');

几点实用提醒:

  • 这里用CONCAT(pd.product_name, '%')是为了生成以product_detail产品名为开头的匹配规则,确保能匹配到所有在基础名称后附加了字符的new_product记录。
  • 因为你提到两张表的产品名称都是唯一的,所以不用担心一条new_product记录匹配到多条product_detail记录的情况。
  • 如果担心出现前缀冲突(比如product_detail里同时有"Milk"和"Milk Shake"),可以考虑先筛选出最长匹配的记录,或者在业务层面保证基础名称的唯一性和无重叠前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:47:12