Zor*_*zyd 3 mysql case-sensitive
是否可以对查询强制区分大小写?
我的听起来像这样:
"SELECT g_path FROM glyphs WHERE g_glyph = :g_glyph ORDER BY rand()"
Run Code Online (Sandbox Code Playgroud)
如果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;
Run Code Online (Sandbox Code Playgroud)
但是以下行根本不起作用:
"SELECT g_path FROM glyphs WHERE g_glyph = :g_glyph ORDER BY BINARY rand()"
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
非常感谢您的帮助.
字符的顺序和相等性由排序规则定义.在大多数情况下,使用不区分大小写的排序规则.
如果需要对特定数据使用严格的区分大小写的比较,请使用BINARY运算符:
mysql> SELECT 'a' = 'A';
-> 1
mysql> SELECT BINARY 'a' = 'A';
-> 0
mysql> SELECT 'a' = 'a ';
-> 1
mysql> SELECT BINARY 'a' = 'a ';
-> 0
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下:
SELECT g_path FROM glyphs WHERE BINARY g_glyph = :g_glyph ORDER BY rand()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3162 次 |
| 最近记录: |