Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan ekspresi boolean dalam urutan dengan klausa

MySQL tidak memiliki nyata gagasan boolean, dan cukup memetakan TRUE dan FALSE ke nilai numerik 1 dan 0 secara bergantian.

Dalam hal ini user_id <> ? akan mengembalikan 0 untuk sebagian besar baris di tabel Anda dan 1 untuk baris lainnya. Urutan pengurutan default adalah ASC , artinya kemungkinan besar baris yang Anda inginkan berada di bawah dari kumpulan hasil Anda (0/FALSE datang sebelum 1/TRUE ). Coba ubah kueri Anda untuk mengakomodasi ini.

( user_id <> ? ) DESC, rating DESC, title

Dengan asumsi ini memang masalahnya, kompatibilitas lintas-basis data dapat dicapai dengan mudah.

IF(user = ?, 0, 1), rating DESC, title


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara membuat bidang terhitung di mysql?

  2. MYSQL:Perbedaan antara Biner dan Blob

  3. php Query INNER bergabung dengan tabel

  4. Cara mengatur max_connections di MySQL Secara Terprogram

  5. ST_Buffer setara untuk pencarian berbasis Lingkaran di MySQL?