我可以在MySQL查询中使用preg_replace或regex吗?

时间:2012-11-27 10:42:21

标签: mysql sql inner-join

我想要加入两个表。问题是,数据需要一些修剪。

== Product Description

id              sku                 price

1               674_orange          45.99
2               645_black           59.99
5               592_rubyred         69.99

== Product Attributes

id          sku     description

11          674     lorem ipsum long text description of 674
22          645     lorem ipsum keywords for this item
33          592     lorem ipsum colours on this item

我想在SKU上加入这些表格。但是我需要进行替换,因为我认为LIKE%不够准确吗?

2 个答案:

答案 0 :(得分:2)

使用

select *
from description d
join attributes a on a.sku = substring(sku, 1, locate('_', sku)-1)

locate('_', sku)获取字符串中_的位置

substring(sku, 1, locate('_', sku)+1)sku中提取子字符串。子字符串将从位置1开始,并在_之前的位置结束。这就是使用-1的原因。

SQLFiddle demo

答案 1 :(得分:1)

试试这个:

SELECT * FROM ProductDescription pd 
INNER JOIN ProductAttributes pa ON SUBSTRING_INDEX(pd.sku, '_', 1) = pa.sku ;
相关问题