如何以特定的顺序从数据库中显示php中的记录

时间:2015-10-31 06:25:53

标签: php sql

我在php中创建一个程序,通过在我的查询字符串中添加“order by'column name'”按字母顺序从数据库中选择记录

例如我们有条目

A B M L H V V F现在按字母顺序显示记录后,将按以下顺序获取记录

A B F H L M V V

现在,如果我的用户想要查看m的记录,那么他应该按照以下方式获取记录

M A B F H L V V

表示搜索记录在顶部,然后按字母顺序排列。

那么如何通过一个查询以这种方式获取记录

$result=mysqli_query($con,"SELECT * from orders order by 'name'");

3 个答案:

答案 0 :(得分:1)

使用order by name='M' desc

SELECT * from orders order by name='M' desc,name ASC

答案 1 :(得分:1)

你可以试试这个

select * 
from orders
order by name = 'M' desc, name asc

或者

select * 
from orders
order by case when name = 'M' then -1 else name end

来源:mysql SQL: specific item to be first and then to sort the rest of the items

答案 2 :(得分:0)

使用两个查询,第一个获取所需字母的所有记录,使用问题中的查询作为起点(假设所需字母为M):

SELECT * FROM orders WHERE name LIKE '%m' ORDER BY 'name'

然后是第二个查询:

SELECT * FROM orders WHERE name NOT LIKE '%m' ORDER BY 'name'

然后让PHP将第二个查询的结果集附加到第一个查询的结果集中。 ORDER BY子句中使用的字段需要在两个查询中匹配。如果您希望在一个查询中按顺序对这两个部分进行排序,我认为不可能这样做