H. *_*rid 1 mysql sql sql-order-by
我有一个带有一些列的表,我想按“ post_id”列排序选择。这些行是这样的:“ rgpost0”,“ rgpost1”,“ rcpost2”,...
如何按“ post_id”列的值末尾的数字对选择进行排序?
该代码不起作用: SELECT * FROM posts_info ORDER BY post_id+0 DESC
我不想将列类型更改为数字。我只想按数字在字符串的末尾进行排序。
您可以使用reverse()两次:
SELECT * FROM posts_info
ORDER BY reverse(reverse(post_id) + 0) + 0 DESC
Run Code Online (Sandbox Code Playgroud)
对于此表:
create table posts_info(id int, post_id varchar(100));
insert into posts_info(id, post_id) values
(1, 'bob52'),
(2, 'alice634'),
(3, 'john12'),
(4, 'mark7'),
(5, 'mary001');
Run Code Online (Sandbox Code Playgroud)
结果:
| id | post_id |
| --- | -------- |
| 2 | alice634 |
| 1 | bob52 |
| 3 | john12 |
| 4 | mark7 |
| 5 | mary001 |
Run Code Online (Sandbox Code Playgroud)
参见演示。
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |