SQL LIKE - 使用方括号(字符范围)匹配来匹配整个单词

时间:2017-08-17 11:45:03

标签: sql sql-server regex

在REGEX中,您可以执行类似[a-c] +的操作,该操作将匹配

  • aaabbbccc
  • abcccaabc
  • cbccaa
  • B'/ LI>
  • AAAAAAAAA

在SQL LIKE中似乎可以使用等效的“。*”,即“%”或[a-c]。是否可以在SQL中使用+(至少一个)量词来执行[a-c] +?

编辑:只是为了澄清,所需的最终查询看起来像

SELECT * FROM table WHERE列LIKE'[a-c] +'

然后会在上面的列表中匹配,但不匹配,例如“xxxxxaxxxx”

3 个答案:

答案 0 :(得分:1)

作为一般规则,SQL Server的LIKE模式比正则表达式弱得多。对于您的特定示例,您可以执行以下操作:

where col not like '%[^a-c]%'

即,该列不包含非a,b或c的字符。

答案 1 :(得分:1)

您可以在SQL中结合LIKE使用正则表达式,例如:

SELECT * FROM Table WHERE Field LIKE '%[^a-z0-9 .]%'

这适用于SQL

或者在你的情况下

SELECT * FROM Table WHERE Field LIKE '%[^a-c]%'

答案 2 :(得分:-3)

我似乎想要一些来自数据库的数据,也就是说你不确切知道,你必须在该字段中显示你的列和你想要的所有字符。