MYSQL 中文数字排序
时间: 2023-12-02 22:40:55 浏览: 62
MYSQL中文数字排序可以使用convert函数将查询到的字段转为gbk即可排序,具体步骤如下:
1.先按数字排序,可以使用SUBSTRING函数和REGEXP函数,将数字和非数字分开排序,然后再将两个结果合并起来,具体代码如下:
```sql
SELECT * FROM table_name ORDER BY CAST(SUBSTRING(column_name, 1, REGEXP_INSTR(column_name, '[^0-9]')) AS UNSIGNED), CONVERT(column_name USING gbk);
```
2.如果字段中有汉字,可以使用convert函数将查询到的字段转为gbk即可排序,具体代码如下:
```sql
SELECT * FROM table_name ORDER BY CONVERT(column_name USING gbk);
```
相关问题
mysql 中文数字排序
MySQL中文数字排序需要使用特定的排序规则,例如utf8mb4_unicode_ci或utf8mb4_general_ci。这些排序规则可以正确地将中文数字按照其拼音顺序排序。如果需要对数字进行排序,可以使用CAST函数将其转换为整数,然后进行排序。另外,如果需要对中文进行排序,可以使用CONVERT函数将其转换为GBK编码,然后进行排序。需要注意的是,使用CONVERT函数进行排序可能会影响性能,因为它需要对每个值进行转换。因此,如果需要对大量数据进行排序,最好使用其他方法来处理排序问题。
mysql固定中文排序
在MySQL中,对包含中文字符的数据进行排序可能会遇到乱序的问题,因为默认情况下,MySQL会按照字节而不是Unicode编码的顺序进行比较。为了正确地按汉字拼音或者其他中文规则排序,你可以使用`COLLATE`关键字指定一个适合中文的排序规则。
例如,如果你想要按GBK编码下的简体中文排序,可以这样设置:
```sql
SELECT * FROM table_name ORDER BY column_name COLLATE utf8mb4_chinese_gbk;
```
如果你希望按拼音排序,可以使用`utf8_unicode_ci` Collation,它支持拼音排序,如:
```sql
SELECT * FROM table_name ORDER BY column_name COLLATE utf8_unicode_ci;
```
记住,不同的Collation适用于不同的语言和排序需求,所以在选择时要根据实际需要来确定。
阅读全文