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 [email protected]=1;

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

select*from t where 1 and [email protected]=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);
[email protected]=0;
[email protected]:=id from t;

Dan Anda bahkan dapat melakukan concat :

[email protected]='0';
select @a:=concat(@a,',',id)from t;

Atau concat tanpa 0 leading di depan :

[email protected]='';
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