我在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'");
答案 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子句中使用的字段需要在两个查询中匹配。如果您希望在一个查询中按顺序对这两个部分进行排序,我认为不可能这样做