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

Menggabungkan baris sebagai array dari tabel lain untuk setiap baris

Saya pikir Anda memerlukan GROUP_CONCAT

Lakukan sesuatu seperti ini:-

SELECT 
    movies.*, 
    group_concat(links.link ', ') as links
FROM movies 
LEFT JOIN links 
ON links.movieid = movies.movieid 
GROUP BY movies.movieid

Anda akan mendapatkan daftar tautan yang dipisahkan koma untuk setiap film. Yang dapat Anda ekstrak seperti ini:-

foreach ($movies->result() as $row) {
  $linksArray = explode(",",$row->links);
}

Pembaruan Saya pikir ini adalah satu-satunya cara Anda bisa mendapatkan hasil tanpa memiliki beberapa baris hasil untuk satu film dengan banyak tautan.

Berhati-hatilah dengan panjang maksimum karakter yang bisa Anda dapatkan dalam hasil - secara default 1024 karakter. Baca iniMysql group_concat_max_length dan Panjang maksimum concat grup untuk mengetahui cara mengganti batas.

Dan seperti yang ditunjukkan Dan Grossman, jika Anda merasa tautan mungkin mengandung koma, gunakan pembatas yang berbeda atau tidak biasa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php + mysql + google map

  2. cara memublikasikan penginstal aplikasi jendela c#

  3. Mengapa migrasi Rails Active Record menghasilkan COLLATE utf8_bin pada kolom varchar mysql

  4. Impor Data Dari Excel Ke MySql Dengan Node JS

  5. Cara Mencegah Batas Waktu Koneksi untuk Impor MySQL Besar