左连接中的 LIKE 语句

LIKE statement in left join connection

有没有办法在 ON 子句中的 MySQL 连接中加入 like 语句? 我有一个名为 new_product 的 table 包含每天由 cron 作业生成的 product_name 并且我有一个现有的 product_detail table 包含 product_name 和许多不同的属性。产品名称在 table 中都是唯一的,但问题是有时在 new_product table 中我在末尾附加了额外的字符,例如在 Milk Fr 和产品中详细信息我有 Milk。所以我不能使用 new_product.product_name = product_detail.product_name 我需要在 ON 子句中包含 like 但是因为我有 30,000 行,所以我收到了一个错误。我将这两个 cols 都设置为索引,但没有帮助。 (new_product.product_name = product_detail.product_name)

没有什么能阻止你拥有它。如果您担心速度。在列上放置索引

您可以根据需要在 ON 子句中使用 like,例如:

  select *
  from t1 
  left join t2 on t1.col1 = t2.colx and t1.col3 like 'A%'

  select *
  from t1 
  left join t2 on t1.col1 = concat('%', t2.colx, '%')