mysql - 按包含姓名的字段对结果进行排序

标签 mysql sql-order-by

我想知道 MySQL 中是否可以通过包含名字和姓氏的名称列对结果进行排序。

示例:

"title" : Albert CATERSON - Barabara ABELS - Chris WASPINK

SQL .. 
ORDER BY title 

结果将是:

Albert CATERSON - Barabara ABELS - Chris WASPINK

但我想按姓氏对结果进行排序:

ABELS Barabara - CATERSON Albert - WASPINK Chris

你知道是否可以在mysql中做到这一点吗?谢谢。

最佳答案

尝试这样

DROP TABLE IF EXISTS OrderBySurname;
Query OK, 0 rows affected, 1 warning (0.01 sec)


CREATE TABLE OrderBySurname(id INT, title VARCHAR(255));
Query OK, 0 rows affected (0.26 sec)


INSERT INTO `OrderBySurname` (`id`, `title`) VALUES ('1','Albert CATERSON'),('2', 'Barabara ABELS'),('3', 'Chris WASPINK');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0


SELECT title , SUBSTRING_INDEX(title, ' ', -1) AS sur_name FROM OrderBySurname ORDER BY sur_name;
+-----------------+----------+
| title           | sur_name |
+-----------------+----------+
| Barabara ABELS  | ABELS    |
| Albert CATERSON | CATERSON |
| Chris WASPINK   | WASPINK  |
+-----------------+----------+
3 rows in set (0.00 sec)


SELECT CONCAT(SUBSTRING_INDEX(title, ' ', -1),' ',SUBSTRING_INDEX(title, ' ', 1)) FROM OrderBySurname ORDER BY SUBSTRING_INDEX(title, ' ', -1);
+----------------------------------------------------------------------------+
| CONCAT(SUBSTRING_INDEX(title, ' ', -1),' ',SUBSTRING_INDEX(title, ' ', 1)) |
+----------------------------------------------------------------------------+
| ABELS Barabara                                                             |
| CATERSON Albert                                                            |
| WASPINK Chris                                                              |
+----------------------------------------------------------------------------+
3 rows in set (0.00 sec)

关于mysql - 按包含姓名的字段对结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21549318/

相关文章:

sql - SQL 中的字母数字排序与 LINQ 和 .NET

c# - Entity Framework ORDER BY 问题

mysql - 按日期排序记录,然后按项目 ID 排序

php - 如何创建一个函数来获取变量、检索变量并在预览页面上访问它们

php - 如何在 Laravel 中将数组转换为字符串?

sql - 尝试连接表并按一个不同的最大值进行选择

laravel-5 - 通过关联表在 Laravel 5.1 中按距离排序

mysql - 如何在使用 substring_index 时去掉换行符

javascript - 使用 AJAX 部分更新列表

mysql - 别名在 ORDER BY 子句中不起作用