我试图有一个请求与大小写敏感的结果。
例如在我的数据库中我有
ABCdef
abcDEF
abcdef
请求是
SELECT * FROM table WHERE col = 'abcdef'
但是结果是3行我只需要abcdef
我试图找到一个解决方案
SELECT *
FROM table
WHERE col COLLATE Latin1_General_CS_AS = 'abcdef' COLLATE Latin1_General_CS_AS
但是我有这个错误:
未知排序:'Latin1_General_CS_AS'{"success":false,"error":"#1273 -未知排序:'Latin1_General_CS_AS'"}
谢谢
谢谢你的帮助,我找到了解决方案,它不是拉丁1 ut utf8
COLLATE utf8_bin
Latin1_General_CS_AS
是SQL Server的排序规则。
对于MySQL,试试latin1_general_cs
:
WHERE col = 'abcdef' COLLATE latin1_general_cs
区分大小写的字符串SQL区分上下SQL server 2008 R2或者在版本之后,你可以转换为二进制:
- 第一步转换二进制
- 最后一步比较两个字符串二进制
exp:
SELECT * FROM dbo.staffl WHERE CAST(unitcode AS BINARY(50)) = CAST ('pcs' AS BINARY(50))