2016-10-03 69 views
3

我有一個像從MySQL檢索如果只包含兩個連字符符號

+----------------------------+ 
| address     | 
+----------------------------+ 
| abc street edf road --- | 
| klm street number 10 -- | 
+----------------------------+ 

表當我使用

SELECT * FROM table WHERE address LIKE '%--%' 

檢索兩種。

我怎麼只能檢索以下數據

+----------------------------+ 
| address     | 
+----------------------------+ 
| klm street number 10 -- | 
+----------------------------+ 

謝謝!

回答

7

你可以這樣說:在這一點上

SELECT * FROM table WHERE address LIKE '%--%' AND address NOT LIKE '%---%' 
+0

謝謝你的回覆速度快,它的作品! – kazata

2

,我可以建議此解決方案:

SELECT * FROM table WHERE address LIKE '%--%' and address NOT LIKE '%---%' 
+0

是的。對。只有第二個是正確的。 –

4

試試這個

SELECT * FROM table WHERE address LIKE '%--%' and address not like '%---%' 

SELECT * FROM table WHERE address LIKE '%--%' 
     and length(address)-length(replace(address,'-',''))=2 
+0

謝謝你的不同解決方案!現在我更喜歡第一個選項來保持簡單,但我很高興我學會了另一種方式來做到這一點。 – kazata

+1

第二個查詢也會返回''klm street number - 10 -''。 – jarlh

+0

你是對的@jarlh。更正了第二個代碼。 – Madhivanan

1

或者您可以使用REGEXP

SELECT * FROM table WHERE address REGEXP '-{2}' AND REGEXP '-{3}' = 0; 
+0

謝謝你的不同解決方案! – kazata

相關問題