1

我有一个查询,在这个查询中它从我的 userTable 中返回结果就好了。但是,我正在尝试找出一种方法来首先显示我们大学的个人资料,然后再显示结果。最好的方法是什么?

$sql = mysqli_query($con, "SELECT * FROM userTable WHERE keyID LIKE '%".getID."%' 
ORDER BY Lname ASC"

我的数据库有一个名为“教育”的列,其中显示了个人资料来自的大学。我们想先使用我们的大学进行排序,然后再显示其他结果。

4

2 回答 2

0

尝试这个

$sql = mysqli_query($con, "SELECT * FROM userTable WHERE keyID LIKE '%".getID."%' 
ORDER BY Education ASC, Lname ASC"

这将从 az 按升序排列“教育”

编辑

 $sql = mysqli_query($con, "SELECT * FROM userTable WHERE keyID LIKE '%".getID."%' 
CASE WHEN Education = 'ThisUniv' then 1 else 2 end,education, Lname ASC"

将耶鲁更改为您所在大学的名称

于 2013-10-29T17:54:08.433 回答
0

像这样的东西会起作用。你给那些你想先显示的人一个排名,而不是你给那些你想稍后显示的人的排名。这不是一个非常有效的查询。

SELECT innerquery.*
  FROM (SELECT 1 AS RANK,
               u1.*
          FROM userTable u1
         WHERE u1.keyID LIKE '%".getID."%'
           AND education = 'my uni'
      ORDER BY u1.Lname ASC
        UNION
        SELECT 2 AS RANK,
               u2.*
          FROM userTable u2
         WHERE u2.keyID LIKE '%".getID."%'
           AND education <> 'my uni'
      ORDER BY u2.Lname ASC
      ) innerquery
ORDER BY RANK, Lname asc
于 2013-10-29T18:04:04.500 回答