左连接中的 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, '%')
有没有办法在 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, '%')