“MySQL 字符集:排序规则问题”的版本间差异
跳到导航
跳到搜索
第52行: | 第52行: | ||
== “COLLATE”子句优先级 == | == “COLLATE”子句优先级 == | ||
COLLATE子句具有较高的优先级('''高于“||”'''),因此以下两个表达式是等效的: | |||
<syntaxhighlight lang="xml"> | |||
x || y COLLATE z | |||
x || (y COLLATE z) | |||
</syntaxhighlight> | |||
【???有啥用】 | |||
== 字符集和排序规则兼容性 == | == 字符集和排序规则兼容性 == |
2021年3月28日 (日) 05:25的版本
在 SQL 语句中使用“COLLATE”
使用“COLLATE”子句,您可以覆盖默认的默认排序规则以进行比较。“COLLATE”可用于 SQL 语句的各个部分。这里有些例子:
- 使用“ORDER BY”:【对中文排序呢???拼音升降序使用什么排序规则???】
SELECT k FROM t1 ORDER BY k COLLATE latin1_german2_ci;'''
- 使用“AS”:
SELECT k COLLATE latin1_german2_ci AS k1 FROM t1 ORDER BY k1;
- 使用“GROUP BY”:
SELECT k FROM t1 GROUP BY k COLLATE latin1_german2_ci;
- 具有聚合功能:
SELECT MAX(k COLLATE latin1_german2_ci) FROM t1;
- 使用“DISTINCT”:
SELECT DISTINCT k COLLATE latin1_german2_ci FROM t1;
- 使用“WHERE”:
SELECT * FROM t1 WHERE _latin1 'Müller' COLLATE latin1_german2_ci = k;
SELECT * FROM t1 WHERE k LIKE _latin1 'Müller' COLLATE latin1_german2_ci;
- 使用“HAVING”:
SELECT k FROM t1 GROUP BY k HAVING k = _latin1 'Müller' COLLATE latin1_german2_ci;
“COLLATE”子句优先级
COLLATE子句具有较高的优先级(高于“||”),因此以下两个表达式是等效的:
x || y COLLATE z
x || (y COLLATE z)
【???有啥用】