在 TFDQuery "like" 模式中使用方括号 [^] 中的帽子时出现问题
Problem using hat in square brackets [^] in TFDQuery "like" pattern
我在 Delphi 10.3 中有 MS Access 2016 table 和 运行ning TFDQuery。
字段 1 的值为:aac
、abc
、acc
、a c
、azc
、ac
、azzc
我运行查询:
Select * from Table1 WHERE Field1 like 'a[^a-c]c'
参考,我应该得到:
"a c, azc"
但我得到
"aac, abc, acc"
请帮忙改正脚本。
要在 MS Access 中使用 like
运算符匹配负字符集,您应该根据 documentation 使用感叹号,例如:
select * from Table1 where Field1 like 'a[!a-c]c'
您当前的代码匹配字符 ^
、a
、b
、c
并被字符 a
和 c
包围,从而解释您当前收到的结果。
根据 below by @TLama, you'll also need to escape the exclamation mark,例如:
select * from Table1 where Field1 like 'a[!!a-c]c'
正确的代码是:
Select * 来自 Table1,其中 Field1 喜欢 'a[!!a-c]c'
我在 Delphi 10.3 中有 MS Access 2016 table 和 运行ning TFDQuery。
字段 1 的值为:aac
、abc
、acc
、a c
、azc
、ac
、azzc
我运行查询:
Select * from Table1 WHERE Field1 like 'a[^a-c]c'
参考
"a c, azc"
但我得到
"aac, abc, acc"
请帮忙改正脚本。
要在 MS Access 中使用 like
运算符匹配负字符集,您应该根据 documentation 使用感叹号,例如:
select * from Table1 where Field1 like 'a[!a-c]c'
您当前的代码匹配字符 ^
、a
、b
、c
并被字符 a
和 c
包围,从而解释您当前收到的结果。
根据
select * from Table1 where Field1 like 'a[!!a-c]c'
正确的代码是:
Select * 来自 Table1,其中 Field1 喜欢 'a[!!a-c]c'