我正在尝试查找包含6个或更多字母数字字符的字符串大写的记录。一些例子:
PENDING 3RDPARTY CODE27
我使用以下语句:
SELECT Details FROM MyTable WHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
这将返回包含任何6个或多个字母的单词的所有记录,无论如何。
我已经添加了一个COLLATE语句:
SELECT Details FROM MyTable WHERE Details COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
这一切都没有改变。它仍然返回具有6个或多个字母的单词的记录,无论如何。
作为一个测试,我试过:
SELECT Details FROM MyTable WHERE Details COLLATE Latin1_General_CS_AS LIKE '%pending%'; SELECT Details FROM MyTable WHERE Details COLLATE Latin1_General_CS_AS LIKE '%PENDING%';
这两个工作都分别返回包含“待定”和“待定”的记录。所以这个问题似乎是由LIKE claus的模式匹配。
执行此区分大小写的搜索可以做些什么?
解决方法
尝试使用COLLATE Latin1_General_BIN而不是COLLATE Latin1_General_CS_AS
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。