我正在为mssql使用较旧的PHP驱动程序,并尝试使用ContainsRegExp命令过滤掉结果。问题是我正在比较的字段是ntext,它会导致查询失败。是否可以在ContainsRegExp命令中执行强制转换,例如:
... AND Field1.ContainsRegExp(CAST(Field1 AS TEXT) AS Field1Test,\'html\')=1';
完整的查询语句:
'SELECT ReportID, ReportDate, CAST(ReportData AS TEXT) AS TextData FROM Database WHERE ReportData.ContainsRegExp(CAST(ReportData AS TEXT),\'html\')=1';
我看到的错误是:
message: Cannot call methods on ntext. (severity 15)
答案 0 :(得分:1)
ContainsRegExp不是标准的SQL Server命令。所以我不确定你是如何得出那个声明的,但它不是T-SQL。
我的猜测是,在某个地方,类似的命令已经与CLR类型一起使用 - 因为您使用的语法(Field.Operation()
)用于调用CLR类型的方法。