【发布时间】:2020-04-21 20:06:28
【问题描述】:
我在 StackOverflow(几年前发布)上阅读了很多关于这个问题的问题和答案,但我发现没有一个问题和答案都使用 10.3.22-MariaDB 服务器和 libmysql - 5.6 .43 作为数据库客户端。
我正在尝试执行以下操作:
SELECT * FROM table WHERE 'column' = 'data' LIMIT 1
但是,如果column 的值是DaTa 或data,上面的命令将选择该行,而我正在努力只选择后者。
2011 年类似问题的答案(MySQL)建议:
SELECT * FROM table WHERE BINARY 'column' = 'data'
SELECT * FROM table WHERE 'column' = BINARY 'data'
SELECT * FROM table WHERE 'column' LIKE BINARY 'data'
SELECT * FROM table WHERE 'column' LIKE 'data' COLLATE latin1_general_cs
以上命令都不尊重字母的大小写。而且,最后一个甚至没有运行,因为
- 无法识别的关键字。 (在位置 45 的“COLLATE”附近)
- 意外令牌。 (靠近位置 53 的“latin1_general_cs”)
2020 年这个问题的解决方案是什么?我做错了什么或我的服务器出了什么问题?
任何帮助将不胜感激!
【问题讨论】:
标签: mysql sql mariadb case-sensitive libmysql