如何使用PHP从MySql中按姓名和姓氏排序?

时间:2016-07-30 11:58:04

标签: php mysql sql sql-order-by

我知道我可以执行此操作"SELECT * FROM members WHERE isHere = 0 ORDER BY surname"从我的数据库中获取不在此处的成员并对其进行排序。但是,如果他们的姓氏相同,我想按姓名对他们进行排序。关于如何做到这一点的任何提示?

3 个答案:

答案 0 :(得分:1)

只需使用多个ORDER BY子句即可使用多个排序选项:

SELECT * 
FROM members 
WHERE isHere = 0 
ORDER BY surname ASC,
name ASC

这将首先按姓氏排序,如果两个或多个用户具有相同的姓氏,则可以按名称对其进行排序。如果你愿意,你可以添加三分之一的排序来按年龄排序。

SELECT * 
FROM members 
WHERE isHere = 0 
ORDER BY surname ASC,
name ASC,
age DESC

答案 1 :(得分:0)

您可以按多个列排序。像这样,

SELECT * 
FROM members 
WHERE isHere = 0 
ORDER BY surname ASC, name ASC;
  

您可以对多列进行排序,也可以对不同的列进行排序   在不同的方向,这意味着您可以按ASC对结果集进行排序,其中DESC为名称。

  在您的情况下,这不是必需的,只是为了信息。

默认排序将采用不区分大小写的方式。如果您想要对列进行区分大小写的排序,请为列添加 BINARY 关键字。

像这样,

SELECT * 
FROM members 
WHERE isHere = 0 
ORDER BY BINARY surname ASC, name ASC;

参考:http://dev.mysql.com/doc/refman/5.7/en/sorting-rows.html

答案 2 :(得分:0)

如果你想先名字,然后像这样使用姓氏

@pytest.fixture

如果你想先姓,那么就像这样使用

SELECT * FROM members WHERE isHere = 0 ORDER BY name asc,surname asc;

根据

排序更改SELECT * FROM members WHERE isHere = 0 ORDER BY surname asc,name asc; asc