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

Perlu Mengonversi Kolom menjadi Baris di MYSQL

Mungkin solusi di bawah ini membantu Anda memecahkan masalah Anda, Anda perlu melakukan beberapa perubahan sesuai struktur tabel Anda.

Untuk solusi ini Anda harus membuat prosedur tersimpan.

Jika ini adalah struktur tabel Anda :

CREATE TABLE `school` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(500) DEFAULT NULL,
  `value` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS=1;

Solusi di bawah ini berfungsi jika di atas adalah struktur tabel Anda.

   SET SESSION group_concat_max_len = (2056 * 2056);

SET @sql = NULL;

SELECT GROUP_CONCAT(DISTINCT
             CONCAT(
               'MAX(CASE WHEN school.name ="',m.name,'"'
                                ' THEN school.value END)"',m.name , '"'))
                                INTO @sql  
                                            from school as m;

SET @sql = CONCAT('SELECT value,',@sql,
                  ' FROM school');


PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Lakukan perubahan sesuai struktur tabel Anda.

Solusi ini juga membantu untuk beberapa tabel, saya harap ini dapat membantu Anda menyelesaikan masalah Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menukar nilai kolom di MySQL

  2. Tidak dapat terhubung ke mysql dari visual studio 2015

  3. Ubah Data Satu Sel di mysql

  4. Peningkatan Otomatis setelah dihapus di MySQL

  5. Kesalahan 1148 MySQL Perintah yang digunakan tidak diizinkan dengan versi MySQL ini