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

Cadangan basis data SQL Query

Untuk mendapatkan Data seluruh database - Demo SqlFiddle

Untuk mendapatkan data hanya dari satu tabel - - Demo SqlFiddle

Saya telah membuat solusi yang kompleks tetapi dapat diterima. Namun perlu perbaikan .

Ini adalah prosedur kompleks dengan pengkodean kompleks terutama kueri yang mengambil semua baris dari semua kolom menjadi satu hasil dengan group_concat dan format dengan rangkaian yang kompleks.

Perlu disederhanakan, efisien, dan berfungsi di semua skenario.

Beberapa detail solusi saya :Berikut adalah bagian penting, yang lain hanya kondisi/Perulangan (Saya tidak terbiasa dengan dokumentasi juga perlu waktu dan saran, seseorang dapat membantu saya dalam pemformatan dan peningkatannya, Maaf atas ketidaknyamanan ini, namun saya akan senang untuk bantuan apa pun dari Anda dan saya)

Catatan:group_concat(yourColumn separator ' --anySeparator-- ') menggabungkan semua baris kolom Anda menjadi satu sehingga Baris dipisahkan oleh --anySeparator--

select group_concat(column_name separator '`,`') into @cns1 from
information_schema.columns where table_schema=dn and [email protected];

1 :column_names didapat sebagai nilai tunggal yang dipisahkan oleh

`,` => @cs1 = id`,`ename`,`did

select group_concat(column_name separator '`,"\',\'",`') into @cns2
from information_schema.columns where table_schema=dn and [email protected];

2:column_names didapat sebagai nilai tunggal yang dipisahkan oleh

`','` => @cn2  = id`','`ename`','`did

set @cns1=concat("`",@cns1,"`");    set @cns2=concat("`",@cns2,"`");

3:Huruf hilang (`) diletakkan di awal dan akhir nama Kolom

set @res=concat(@res," insert into ",@tn,"(",@cns1,") values ('");

4:Cukup buat res= " insert into emp( `id` , `nama` , `did` ) values(" Di sini Anda dapat melihat mengapa saya meletakkan pemisah (Pemformatan MySql tercapai)

set @temp := '';
set @q := concat("select group_concat(concat(",@cns2,") separator \"'),('\")
 from ",dn,".",@tn, " into @temp");

Di atas adalah pernyataan yang paling penting Itu mendapatkan semua baris data dari tabel sebagai baris dari satu kolom dan selanjutnya baris-baris ini digabung dipisahkan oleh '),('

5.1 concat(",@cns2,") mendapatkan nilai dari semua kolom dalam satu kolom.

5.2 Setelah concat terluar sekarang @q adalah

 @q = "select group_concat(`id`','`ename`','`,did` separator '),(' from 
mydb.emp into @temp";

5.3 :group_concat akan menggabungkan semua baris dari kolom gabungan itu menjadi satu nilai. Nilai kolom akan digabungkan melalui pemisah yang ada di @cns2 dan penggabungan level baris akan dilakukan dengan '),('

prepare s1 from @q;
execute s1;deallocate prepare s1;
set @res = concat(@res,@temp,");");    

@q dieksekusi

set @res = concat(@res,@temp,");");

6:Dan Kami akan mendapatkan hasil sebagai

 res was = insert into emp(`id`,`ename`,`did`) values ('
@temp = 1','e1','4'),('2','e2','4'),
('3','e3','2'),('4','e4','4'),('5','e5','3

Dan setelah @res = concat(@res,@temp,");"); kita mendapatkan

 insert into emp(`id`,`ename`,`did`) values ('1','e1','4'),('2','e2','4'),
('3','e3','2'),('4','e4','4'),('5','e5','3);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan OpenVPN untuk Mengamankan Akses ke Cluster Basis Data Anda di Cloud

  2. Cara mengaktifkan Penjadwal Acara ketika saya membuka Server MySQL

  3. Nilai Lintang dan Bujur disimpan sebagai String atau Angka?

  4. cara menggunakan WHERE IN mysql stored procedure

  5. Cara mengurai data dari objek baris di node.js,express.js,mysql2