mysql - 有没有办法按包含数字的字符串字段,按数字的值排序?
问题描述
我有由字母和数字构成的 record_id 列的记录
例如
a1
a2
a11
a12
b1
如果我对此进行排序,我会得到
a1
a11
a12
a2
b1
我想知道是否有办法按字母排序,然后按数字的值,如下所示
a1
a2
a11
a12
b1
解决方案
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(string CHAR(3) NOT NULL);
INSERT INTO my_table VALUES
('a2'),('a11'),('a12'),('b1');
select * FROM my_table ORDER BY string;
+--------+
| string |
+--------+
| a11 |
| a12 |
| a2 |
| b1 |
+--------+
select * FROM my_table ORDER BY string+0;
+--------+
| string |
+--------+
| a2 |
| a11 |
| a12 |
| b1 |
+--------+
现在认真考虑规范化您的数据。
推荐阅读
- c# - 如何在 xaml 中显示具有特定有效小数的货币?
- python-3.x - Python从文本中解析某些单词
- flutter - 我如何访问我的 API 请求类(无小部件类)中的 bloc
- r - 单击 RUN 和 SOURCE 时 R 中的不同输出(Rstudio 中的 RUN 和 SOURCE 选项卡有什么区别))
- python - 如何绘制 3d 曲面?
- scala - 如何在 Scala 的 Glue Job 中从 S3 文件创建动态数据框?
- mysql - NodeJs Mysql 错误:ER_PARSE_ERROR 插入多个表
- c++ - Valgrind 声称内存释放中有太多空闲
- angular - 使用下拉菜单过滤角材料表
- events - 如何使用 Yii2 实现实时通知系统?