是否可以强制查询区分大小写?
我的听起来是这样的:
"SELECT g_path FROM glyphs WHERE g_glyph = :g_glyph ORDER BY rand()"
如果 g_glyph = r,结果可以是 R 或 r,这不是我所期望的。
我正在寻找区分大小写的返回值。
我用谷歌搜索了我的问题,找到了这个解决方案:
/*Case-sensitive sort in descending order.
In this query, ProductName is sorted in
case-sensitive descending order.
*/
SELECT ProductID, ProductName, UnitsInStock
FROM products
ORDER BY BINARY ProductName DESC;
但以下行根本不起作用:
"SELECT g_path FROM glyphs WHERE g_glyph = :g_glyph ORDER BY BINARY rand()"
有什么建议吗?
非常感谢您的帮助。
字符的顺序和相等性由以下定义整理 http://dev.mysql.com/doc/refman/5.6/en/charset-general.html。大多数情况下,使用不区分大小写的排序规则。
如果您需要对特定数据进行严格的、区分大小写的比较,请使用BINARY操作员 http://dev.mysql.com/doc/refman/5.6/en/charset-binary-op.html:
mysql> SELECT 'a' = 'A';
-> 1
mysql> SELECT BINARY 'a' = 'A';
-> 0
mysql> SELECT 'a' = 'a ';
-> 1
mysql> SELECT BINARY 'a' = 'a ';
-> 0
所以在你的情况下:
SELECT g_path FROM glyphs WHERE BINARY g_glyph = :g_glyph ORDER BY rand()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)