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

SET variabel dalam pernyataan SELECT - MySQL

Masalahnya adalah Anda tidak dapat mencampur select dan set dalam satu pernyataan, pasti akan ada kesalahan sintaks:

select*from t where 1 and example@sqldat.com=1;

Jika Anda ingin melakukan set dalam select , gunakan titik dua sama dengan sintaksis. Ubah ini:

select*from t where 1 and example@sqldat.com=1;

menjadi:

select*,@a:=1 from t where 1;

Inilah cara Anda memperbarui variabel pada setiap baris:

create table t(id int); insert t values(1),(2),(3);
example@sqldat.com=0;
example@sqldat.com:=id from t;

Dan Anda bahkan dapat melakukan concat :

example@sqldat.com='0';
select @a:=concat(@a,',',id)from t;

Atau concat tanpa 0 leading di depan :

example@sqldat.com='';
select @a:=concat(@a,if(@a='','',','),id)from t;

Namun, manual secara eksplisit menyatakan bahwa ini berbahaya:

Ini juga telah disebutkan di Xaprb .

Terakhir, jika Anda melakukan aneh hal-hal seperti menetapkan jenis nilai yang berbeda ke variabel dan lain-lain, checkout panduan untuk memastikan Anda memahami mekanisme yang rumit.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Isi tabel database dengan sejumlah besar data uji

  2. Berapa banyak baris yang 'terlalu banyak' untuk tabel MySQL?

  3. Rails install mysql - Kesalahan saat menginstal mysql2:ERROR:Gagal membuat ekstensi asli permata

  4. Bagaimana cara mengisi lubang di bidang kenaikan otomatis?

  5. MySQL:Perluas rentang tanggal ke baris baru