2015-10-05 71 views
0

我在mysql數據庫與值的列(attr)這樣的:PHP:使用字符串搜索mysql數據庫?

1- apples, red, big, UK, 
    2- Green, apples, big, UK, 
    ETC ETC 

它基本上一串字,他們可以在任何順序,你可以在上面看到。

我想使用任何給定的字符串在該列內搜索。該字符串可以是這樣的:

UK, apples, Red, big, 
apples, UK, big, green, 
etc etc 

什麼,我需要做的是尋找到該列,並且只有字符串中所給的詞匹配柱內完全一樣的話顯示結果。

我已經使用這個代碼的嘗試:

$sql="SELECT * FROM `product_details` WHERE '$list' LIKE CONCAT('%', attr ,'%')"; 

其中$list是給定的字符串。 like: UK, apples, Red, big,

正如您所看到的那樣,這些單詞存在於數據庫中,但它們的順序不同,這就是爲什麼PHP不顯示任何結果!

請問有人能就這個問題提出建議嗎?

+0

這是非常糟糕的數據庫設計,你是隻是遇到你將遇到的問題的一角。爲屬性創建單獨的表,將每個屬性添加爲單獨的條目。 –

+0

@GeraldSchneider哈哈,這正是我如何開始的,現在兩天後我最終這樣做了......這是我能做到這一點的唯一方法,因爲還有很多其他因素正在實施這個問題的範圍和STO。 –

回答

0

儘量讓這個

UK, apples, Red, big, 

數組在PHP準備狀態,不是把這個數據/字像主題:

Is there a combination of "LIKE" and "IN" in SQL?

+0

我很擔心,如果我創建一個字符串數組,它將使搜索功能變得緩慢,因爲有1000個列要一次通過。 –

+0

好的,你沒有寫關於它。但你是指列或行? –

+0

我的意思是專欄。 attr是一列。 –