-2

这些LIKE条件是否相同:

Phone LIKE '%[()-. ]%'

Phone LIKE '%(%' OR Phone LIKE '%-%' OR Phone LIKE '%.%' OR Phone LIKE '% %'

我从第一个得到的结果少于第二个。任何的想法?

4

1 回答 1

3

您得到不同结果的原因是,-当用于[]表示一系列字符时。它认为您要求的是任何具有(,(space)或介于)and之间的任何字符.。尝试使用ESCAPE子句:

Phone LIKE '%[()=-. ]%' ESCAPE '='

这会指示 SQL 服务器将该=字符用作转义字符,然后通过将 放在=your 之前--不再将 解释为范围指示符。

我从未使用过该ESCAPE子句,因此您可能需要进行实验。但这是正确的想法。

文档:http: //msdn.microsoft.com/en-us/library/ms179859.aspx

于 2013-06-06T19:42:45.393 回答