mysql按照字段的首字母进行排序然后再根据字段后面的上中下进行排序
时间: 2024-01-12 15:05:17 浏览: 37
可以使用MySQL的ORDER BY子句来按照字段的首字母进行排序,然后再根据字段后面的上中下进行排序。假设表名为table_name,字段名为field_name,可以使用以下SQL语句实现:
```
SELECT * FROM table_name ORDER BY LEFT(field_name,1), CASE SUBSTRING(field_name,-1) WHEN '上' THEN 1 WHEN '中' THEN 2 WHEN '下' THEN 3 ELSE 4 END;
```
这个语句会先按照字段的首字母进行排序,然后再根据字段后面的上中下进行排序。其中LEFT(field_name,1)表示取字段名的首字母,CASE SUBSTRING(field_name,-1) WHEN '上' THEN 1 WHEN '中' THEN 2 WHEN '下' THEN 3 ELSE 4 END表示根据字段名的最后一个字符进行上中下排序。
相关问题
Mysql 进行中文首字母排序
MySQL 中可以使用 COLLATE 关键字来进行中文首字母排序。具体步骤如下:
1. 创建一个表,例如:
```
CREATE TABLE test (
id INT PRIMARY KEY,
name VARCHAR(20)
);
```
2. 向表中插入一些中文数据,例如:
```
INSERT INTO test (id, name) VALUES
(1, '张三'),
(2, '李四'),
(3, '王五'),
(4, '赵六');
```
3. 使用 COLLATE 关键字进行排序,例如:
```
SELECT * FROM test ORDER BY name COLLATE "zh_CN_pinyin";
```
这样就可以按照中文首字母进行排序了。注意,"zh_CN_pinyin" 是指使用中文拼音作为排序规则,如果需要其他规则可以参考 MySQL 文档进行设置。
使用mysql,根据json中的某些字段,进行升序排序
首先,需要将 JSON 数据转换为 MySQL 中的表格,可以使用 MySQL 内置的 JSON 函数 `JSON_EXTRACT()` 来提取 JSON 字段中的值,然后使用 `ORDER BY` 子句进行排序。
以下是一个示例:
假设有一个名为 `my_table` 的表格,其中有一个名为 `json_data` 的 JSON 字段,其中包含以下数据:
```json
[
{
"id": 1,
"name": "John",
"age": 25
},
{
"id": 2,
"name": "Jane",
"age": 30
},
{
"id": 3,
"name": "Bob",
"age": 20
}
]
```
现在想要按照 `age` 字段进行升序排序,可以使用以下 SQL 语句:
```sql
SELECT JSON_EXTRACT(json_data, '$[*].age') AS ages
FROM my_table
ORDER BY ages ASC;
```
解释一下上述语句:
- `JSON_EXTRACT(json_data, '$[*].age')` 表示从 `json_data` 字段中提取所有元素的 `age` 值,返回一个 JSON 数组。
- `AS ages` 表示将提取的 JSON 数组重命名为 `ages`。
- `ORDER BY ages ASC` 表示按照 `ages` 字段进行升序排序。
执行以上 SQL 语句,将得到以下结果:
```
+-----------------------+
| ages |
+-----------------------+
| [20, 25, 30] |
+-----------------------+
```
注意:在 MySQL 5.7 及更早版本中,不支持直接对 JSON 字段进行排序,需要将 JSON 数据提取为单独的列后再进行排序。而在 MySQL 8.0 及更高版本中,支持使用 JSON 数据类型进行排序。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)