2013-04-02 171 views
0

我有一個這樣的表;MySQL Like查詢邏輯

|----------------------| 
|field1 | field2 | 
|----------------------| 
|1,2,3,0 | area 1 | 
|5,7,8  | area 2 | 
|10,6  | area 3 | 
|----------------------| 

我有這樣的查詢:

select * from areas where field1 like '%0%'

該查詢給我area 1area 3。但我只想得到area 1,因爲0只在area 1。我也嘗試field1 like '0%',但它沒有給我排。

+1

試試這個'字段1 LIKE「%,0%」' –

+0

@OSSCubeSolution這將只有當每個'工作field1'用逗號 –

+0

@OSSCubeSolution我試過,但 –

回答

1

試試這個Query

select * from areas where field1 like '%,0%' 

感謝OSSCube Solution

編輯

select * from areas where field1 like '0%' or field1 like '%,0%' 
+0

這隻有在每個字段1以逗號開始時纔有效。可能在這個特定情況下工作,但在其他情況下,它不會工作。 –

+0

那麼你給他的代碼,你知道它最終會打破? -1 –

+0

@TomvanderWoerdt查看我編輯 – Luv

5

Normalize您的表格。這是解決這個問題的唯一好方法。

+1

+1正常化。如果您真的無法更改表格,則可以使用FIND_IN_SET搜索CSV字段。 – Vatev

0

試試這個

select * from areas where field1 like '%,0%' or 
           field1 like '%,0,%' or 
           field1 like '0,%' 
+1

您不需要此字段1,如'%,0,%'或 Luv