Select COUNT(*) as 'Number'
From image
WHERE (image.current_phase = 'aggregation' AND (image.raw_filename REGEXP '%gordonpho%back%$'))
上面的SQL查询给出了错误的语法错误。我想从表image
中获取列image.current_phase
具有聚合作为文本的行数。列image.raw_filename
也以'%gordonpho%back%'结尾。
有人能在我的陈述中看到语法错误吗?
答案 0 :(得分:1)
REGEXP
在T-SQL中无效,但无论如何你都不需要它,因为你的“正则表达式”无论如何都会使用LIKE
:
Select COUNT(*) as 'Number'
From image
WHERE (image.current_phase = 'aggregation'
AND (image.raw_filename LIKE '%gordonpho%back%')
答案 1 :(得分:0)
SQL Server本身不支持正则表达式。尝试使用LIKE:
Select COUNT(*) as 'Number'
From image
WHERE (image.current_phase = 'aggregation'
AND (image.raw_filename LIKE '%gordonpho%back%'))
对于您真正需要/想要使用正则表达式的时间,您必须通过SQLCLR支持(.NET代码)来完成。
答案 2 :(得分:-1)
在您的SQL实现中,image
可能是保留字。尝试用反引号(MySQL),方括号[]
(MSSQL)或双引号"
(大多数其他)引用它。
此外,%
中的'%gordonpho%back%$'
s在正则表达式中不被视为通配符。尝试用以下文字替换文字:
'.*gordonpho.*back.*$'