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

sqlalchemy func.group_concat dan urutan data secara acak

Hasil SQL adalah set (multi) dan karenanya tidak memiliki urutan, kecuali jika Anda secara eksplisit mendefinisikannya. Ini berlaku untuk baris grup yang dihasilkan oleh GROUP BY demikian juga; tidak ada urutan di dalam grup, sehingga agregat menerima nilai dalam urutan apa pun yang membuat kueri saat ini bergantung pada rencana, tata letak fisik, penjadwalan, dll. yang dihasilkan. Solusinya adalah mendefinisikan secara eksplisit pesan :

func.group_concat(t.name.op("ORDER BY")(t.name))

Ini menggunakan fungsi operator umum untuk menghasilkan sintaks SQL yang diperlukan. SQLAlchemy menyediakan aggregate_order_by helper untuk sintaks yang sama, tetapi hanya disediakan untuk dialek Postgresql.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nama tabel sensitivitas huruf MySQL di MacOS dengan sistem file tidak peka huruf besar-kecil

  2. MySQLi memperbarui pernyataan yang disiapkan tidak memperbarui basis data

  3. Beberapa Tabel Pilih vs. GABUNG (kinerja)

  4. MySQL:Tentukan Kunci Utama Tabel Secara Dinamis

  5. Bagaimana saya bisa memastikan bahwa dua baris yang dipilih secara acak berbeda satu sama lain?