2016-10-03 61 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

相关问题