开发者

How to put row on top in mysql query.

Hi i have 100 records in my SQL table i want to sort them ASC by name but i need one record on top of all record nr 43.

Is there way i can pull this record 43 first and then ever开发者_JAVA百科ything else ASC order by name?

Trick is to do it in one query.


No UNIONs or CASEs needed:

ORDER BY id = 43 DESC, name ASC


Use this:

ORDER BY CASE WHEN (record is 43) THEN 0 ELSE 1 END, Name


Use a union to create a query that selects the first record then appends the set of records that should appear beneath.

E.g:

select * from table where id = 43;
union
select * from table where id <> 43;


This query should add a column called priority, which has the value 1 on the record with id 43 and 0 on all others. Then you sort by priority first.

SELECT mytable.*, IF(id = 43, 1, 0) AS priority FROM mytable ORDER BY priority DESC, name ASC
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜