MYSQL ORDER BY 字符串中的数字

标签 mysql mariadb sql-order-by

我的表中有如下数据。但我无法排序,因为数字位于字符串的末尾。

用户末尾只有4位年份信息

我想在文章末尾按年份排序,可以吗?

Users column

USER-A-2021
USER-B-2018
USER-C-2019
USER-D-2017
USER-E-2020
USER-F-2016

最佳答案

像这样使用 RIGHT(str,len)

RIGHT - Returns the rightmost len characters from the string str, or NULL if any argument is NULL.

SELECT *
FROM data
ORDER BY RIGHT(info, 4)

CREATE TABLE data (
 info varchar(20)
);

INSERT INTO data VALUES
('USER-A-2021'),
('USER-B-2018'),
('USER-C-2019'),
('USER-D-2017'),
('USER-E-2020'),
('USER-F-2016');

关于MYSQL ORDER BY 字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70178074/

相关文章:

MySql 查询连接表

c# - Linq OrderBy 任何属性

ruby-on-rails - 在 postgres 中按升序排序,最后为 0

MYSQL:寻找 friend 之间相似和独特的喜好

php - 如何使用 CodeIgniter 计算 MySQL 中给定行之前的行数?

php - 为什么我的 localhost/wp-admin/install.php 显示一个空白页面?

mysql - MariaDB 客户端默认使用 UTF-8

php - mysql按字母顺序排序,最后设置 "other"

php - 具有多个父级的多对多层次结构 - PHP、MySQL

c# - MySql.Data.MySqlClient.Replication.ReplicationManager 抛出 System.TypeInitializationException