2016-07-31 73 views
2

我們設計了一個數據庫,但在設計中的錯誤,我們在大的問題,現在,可以像任何方式查詢幫助我們。MYSQL像只查詢關鍵字matchcase

在我的位置我的數據庫表,我有一些記錄是這樣的:

E2 
W3,SE2,SW13,E2 
SE2 
W3,E2 
W3,SE2 

現在我想獲取所有包含E2結果。如果我使用like,它也得到SE2,我不想那樣做。

基本上,我想找到E2即使是在具有由,分離等值的行。

如果我搜索SE2,那麼我不想得到E2的結果,即使它的行中有其他值由,分隔。

基本上,我想找到SE2即使是在具有由,分離等值的行。

+0

@FirstOne實際數據存儲與逗號的盲分離Blind如果我使用該查詢它不與逗號的盲分離Blind工作的 –

+0

@FirstOne我理解,但我與我的數據正與逗號的盲分離Blind –

+1

@FirstOne是的,這就是我要感謝的理解;) –

回答

1

存儲爲逗號分隔值,你的記錄重新使用FIND_IN_SET

SELECT * FROM your_table WHERE FIND_IN_SET('E2', your_column) > 0; 
+0

它的工作是否可以幫助我如何在php中運行這個查詢! –

+0

最好問一個新的問題。我建議先走一步(語法與正常的LIKE查詢沒有區別),然後問你是否卡住了!請包括你已經嘗試過的東西。 – rjdown

0

你可以用一些或條件

select * from my_table 
where my_column = 'E2' 
or my_column like '%,E2' 
or my_column like 'E2,%' 

爲SE2查詢嘗試是

select * from my_table 
where my_column = 'SE2' 
or my_column like '%,SE2' 
or my_column like 'SE2,%' 
or my_column like '%,SE2,%' 

或一般

select * from my_table 
where my_column = 'your_key' 
or my_column like '%,your_key' 
or my_column like 'your_key,%' 
or my_column like '%,your_key,%' 
+0

怎麼樣,如果我搜索SE2我有一個龐大的數據庫,我只是想找個例如確切的詞,如果在第一個記錄,我有E2和第二個記錄我有W3,SE2,SW13,E2和第三個記錄我有SE2那麼它應該找到第二和第三個記錄,因爲它匹配SE2 –

+0

我已更新答案..希望是有用的 – scaisEdge

+0

5分鐘是評論..不可能編輯5分鐘後的評論.. ..答案可以在沒有這個限制的情況下進行編輯..以及新的..編輯是可以編輯每次我想要的答案 – scaisEdge