### 10.8.6 整理效果示例

**示例 1：对德语变音符号进行排序**

假设该列`X`在表中`吨`有这些`拉丁语1`列值：

```
Muffler
Müller
MX Systems
MySQL
```

还假设使用以下语句检索列值：

```
SELECT X FROM T ORDER BY X COLLATE collation_name;
```

如果我们使用，下表显示了值的结果顺序`订购方式`有不同的排序规则。

| `latin1_swedish_ci` | `latin1_german1_ci` | `latin1_german2_ci` |
| ------------------- | ------------------- | ------------------- |
| 围巾 | 围巾 | 穆勒 |
| MX 系统 | 穆勒 | 围巾 |
| 穆勒 | MX 系统 | MX 系统 |
| MySQL | MySQL | MySQL |

在此示例中导致不同排序顺序的字符是 U，上面有两个点 (`ü`)，德国人称之为“U-umlaut”。

-   第一列显示的结果[`选择`](select.html)使用瑞典/芬兰整理规则，即 U-umlaut 与 Y 排序。

-   第二列显示了结果[`选择`](select.html)使用德国 DIN-1 规则，即 U-umlaut 与 U 排序。

-   第三列显示结果[`选择`](select.html)使用德国 DIN-2 规则，即 U-umlaut 与 UE 排序。

**示例 2：搜索德语变音符号**

假设您有三个表，它们的区别仅在于所使用的字符集和排序规则：

```
mysql> SET NAMES utf8;
mysql> CREATE TABLE german1 (
         c CHAR(10)
       ) CHARACTER SET latin1 COLLATE latin1_german1_ci;
mysql> CREATE TABLE german2 (
         c CHAR(10)
       ) CHARACTER SET latin1 COLLATE latin1_german2_ci;
mysql> CREATE TABLE germanutf8 (
         c CHAR(10)
       ) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
```

每个表包含两条记录：

```
mysql> INSERT INTO german1 VALUES ('Bar'), ('Bär');
mysql> INSERT INTO german2 VALUES ('Bar'), ('Bär');
mysql> INSERT INTO germanutf8 VALUES ('Bar'), ('Bär');
```

上述排序规则中的两个具有`A = Ä`平等，没有这样的平等（`latin1_german2_ci`）。因此，您将在比较中获得以下结果：

```
mysql> SELECT * FROM german1 WHERE c = 'Bär';
+------+
| c    |
+------+
| Bar  |
| Bär  |
+------+
mysql> SELECT * FROM german2 WHERE c = 'Bär';
+------+
| c    |
+------+
| Bär  |
+------+
mysql> SELECT * FROM germanutf8 WHERE c = 'Bär';
+------+
| c    |
+------+
| Bar  |
| Bär  |
+------+
```

这不是错误，而是排序属性的结果`latin1_german1_ci`和`utf8_unicode_ci`（所示分类是根据德国 DIN 5007 标准进行的）。
