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

mysql union kolom salah dalam hasil

Union bekerja berdasarkan kolom posisi BUKAN nama. Tetapi Anda belum menentukan posisi kolom karena Anda melakukan * jadi ada dalam urutan tertentu yang dipilih oleh database, tetapi tidak dipilih oleh Anda.

Nama kumpulan hasil akhir adalah nama kolom dalam kueri pertama dalam gabungan.

Cara mengatasinya mudah:Tulis nama semua kolom yang Anda inginkan, dan pastikan urutannya konsisten di antara ketiga kueri.

Kolom TIDAK diurutkan berdasarkan nama (jadi mengganti nama kolom tidak akan membantu Anda), urutannya adalah beberapa urutan internal dalam database.

Menggunakan * dianggap praktik yang buruk:Anda tidak tahu apa yang Anda dapatkan, dan jika Anda hanya membutuhkan beberapa kolom maka gunakan * mengambil lebih banyak data dari yang diperlukan, membuat segalanya lebih lambat.

BTW Kolom penamaan seperti ini (berdasarkan angka) adalah praktik pemrograman yang sangat buruk. Bagaimana di dunia Anda menjaga hal-hal lurus? Kolom Anda memiliki angka, tabel Anda memiliki angka. Apakah Anda mencoba menulis kode yang dikaburkan? Untuk memastikan tidak ada orang lain yang dapat mengerjakan kode Anda? Karena jika ya, ini adalah salah satu cara untuk melakukannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. innodb_lock_wait_timeout menambah batas waktu

  2. ECHO MYSQL HASIL TAMPILAN HALAMAN KOSONG

  3. MySQL Pilih baris dengan kunci atau mundur untuk memilih dengan kunci default

  4. MySQL - hitung berdasarkan bulan (termasuk catatan yang hilang)

  5. Cara menggunakan OR &AND dalam klausa WHERE di mysql