Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

ĐẶT một biến trong câu lệnh SELECT - MySQL

Vấn đề là bạn không thể kết hợp selectset trong một câu lệnh, chắc chắn sẽ có lỗi cú pháp:

select*from t where 1 and [email protected]=1;

Nếu bạn muốn thực hiện set trong select , sử dụng dấu hai chấm bằng cú pháp. Thay đổi điều này:

select*from t where 1 and [email protected]=1;

thành:

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

Đây là cách bạn cập nhật biến theo từng hàng:

create table t(id int); insert t values(1),(2),(3);
[email protected]=0;
[email protected]:=id from t;

Và bạn thậm chí có thể làm concat :

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

Hoặc concat không có 0 đứng đầu :

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

Tuy nhiên, hướng dẫn sử dụng rõ ràng nói rằng điều này là nguy hiểm:

Điều này cũng đã được đề cập trên Xaprb .

Cuối cùng, nếu bạn đang làm kỳ quặc những thứ như gán các loại giá trị khác nhau cho biến và v.v., kiểm tra hướng dẫn sử dụng để chắc chắn rằng bạn hiểu các cơ chế phức tạp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm cách nào để lấy tháng kể từ ngày trong mysql

  2. Docker - Chạy Apache trên máy chủ và vùng chứa cho các trang web khác nhau

  3. Sử dụng khóa chính không sử dụng

  4. Làm thế nào để làm cho Django hoạt động với các trình điều khiển MySQL không được hỗ trợ chẳng hạn như trình điều khiển MySQL của gevent-mysql hoặc Concained?

  5. Tính tổng các hàng từ các điều kiện khác nhau trong Mysql