How to put row on top in mysql query.

后端 未结 4 1601
旧巷少年郎
旧巷少年郎 2021-02-14 12:33

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

相关标签:
4条回答
  • 2021-02-14 12:38

    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;
    
    0 讨论(0)
  • 2021-02-14 12:46

    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 讨论(0)
  • 2021-02-14 12:54

    Use this:

    ORDER BY CASE WHEN (record is 43) THEN 0 ELSE 1 END, Name
    
    0 讨论(0)
  • 2021-02-14 13:01

    No UNIONs or CASEs needed:

    ORDER BY id = 43 DESC, name ASC
    
    0 讨论(0)
提交回复
热议问题