Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

truy vấn mysql PHP:Tôi muốn một mục cụ thể là đầu tiên và sau đó sắp xếp các mục còn lại

Bạn có thể đặt hàng theo bất kỳ địa chỉ nào sau đây

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' sản xuất 1 cho True0 cho False , do đó tại sao desc

Ngoài ra, vì bạn không quan tâm đến thứ tự của các hàng còn lại ngoại trừ bốn hàng đầu tiên, nên bạn cũng có thể tiếp tục giữ phần còn lại của các hàng Tháng 1.

Hãy thử điều này:

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;

Chỉ hoạt động nếu Jan có 4 hàng trở lên.

SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL localhost / 127.0.0.1 sự cố

  2. Tạo bảng mới bằng cách chọn dữ liệu từ các bảng khác với TẠO BẢNG NHƯ

  3. Cách sử dụng điều kiện if / else trong một lựa chọn trong mysql

  4. Chuyển biến PHP sang phương thức bootstrap

  5. trình tạo / tạo trình lặp SqlAlchemy tích hợp hiệu quả bộ nhớ?