2012-11-27 58 views
0

我有兩張表,我想加入。問題是,數據需要一些修整。我可以在MySQL查詢中使用preg_replace或regex嗎?

== 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%會足夠準確?

+0

可能重複[是否有一個MySQL相當於PHP的preg \ _replace的?](http://stackoverflow.com/questions/1705437/is-there -a-mysql-equivalent-of-phps-preg-replace) –

回答

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

+0

謝謝,你能解釋一下嗎?非常感謝。 – TheBlackBenzKid

1

試試這個:

SELECT * FROM ProductDescription pd 
INNER JOIN ProductAttributes pa ON SUBSTRING_INDEX(pd.sku, '_', 1) = pa.sku ; 
+0

重播。感謝你的回答 – TheBlackBenzKid

相關問題