Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql заявка PHP:Искам конкретни елементи да бъдат първи и след това да сортирам останалите елементи

Можете да поръчате по някое от следните

order by owner <> 'Jan'
order by owner = 'Jan' desc
order by case when owner = 'Jan' then 0 else 1 end
order by if(owner = 'Jan',0,1)

owner = 'Jan' произвежда 1 за True и 0 за False , следователно защо desc

Освен това, тъй като не ви пука за реда на останалите редове с изключение на първите четири, можете също така да запазите останалите редове Jan в продължение.

Опитайте това:

SELECT 
    id, car_name, owner
FROM
    ((SELECT 
        0 x, t.*
    FROM
        your_table t
    ORDER BY owner <> 'Jan' , id
    LIMIT 4) UNION ALL (SELECT 
        *
    FROM
        (SELECT 
        1 x, t.*
    FROM
        your_table t
    ORDER BY owner <> 'Jan' , id
    LIMIT 4 , 1000) t
    ORDER BY id)) t
ORDER BY x , id;

Работи само ако Jan има 4 или повече реда.

SQLPiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Върнете се към традиционната репликация от GTID

  2. mysql - днес е между две стойности на колони

  3. Ускоряване (насипно) Вмъкване в MySQL с Python

  4. virtualenv pip mysqldb mac os X python

  5. PHP + MySQL:Разлика между буферирани и небуферирани заявки