2010-10-14 24 views
0

我需要一些快速的幫助來匹配我的數據庫中的一個字段,該字段存儲我的在線商店的所有「父」類別。這裏有一個如何我的「父母」是通過一個名爲一個字段存儲在表中的例子:SQL問題中的模式匹配 - 用PHP找到正確的查詢

MENS MENS品牌男裝恤衫MENS-T恤衫

這是我在PHP查詢來執行電話:

$query = "SELECT id FROM $usertable where parent like '".strtoupper($parent)."'"; 

的問題是,如果我在MENS品牌,這也將返回誰在每一個其他類別,因爲它包含了字所列的產品「男式」。由於所有父母都存儲在一個字段中,我怎樣才能讓我的SQL查詢只識別字段本身中由空格分隔的每個物理詞,而不是試圖在整個字段中查找每個詞的不同片段的每個實例?

我希望這是有道理的,任何幫助肯定是讚賞的。

回答

0

理想,你可以讓你有一個單獨的表連接這些類別改變你的模式,以現有的條目。通過這種方式,每個產品可以有一行,並且您可以輕鬆編寫一個SQL查詢,以查找所需的特定字詞,而無需使用LIKE匹配。額外的獎勵:這將提高性能。

但是,如果你絕對不能改變這個模式,最好的辦法可能是使用像WHERE parent REGEXP '[[:<:]]MENS[[:>:]]'

正則表達式我在這裏使用MySQL正則表達式。如果您使用的是不同的數據庫管理系統,則相同的概念將起作用,但確切的語法可能不同。