2010-02-04 46 views

Trả lời

4

Nói tóm lại, khi sử dụng SET cả hai đều đóng vai trò như các nhà khai thác chuyển nhượng, nhưng trong bất kỳ tuyên bố không thiết lập, := là dành cho assingment và = kiểm tra cho bình đẳng.

Đối với SET, hoặc = hoặc: = có thể được sử dụng làm toán tử gán.

Bạn cũng có thể gán giá trị cho biến người dùng trong các câu lệnh khác ngoài SET. Trong trường hợp này, các nhà điều hành phân công phải là: = và không = vì = được coi là một toán tử so sánh trong báo cáo phi SET

mysql> SET @t1=1, @t2=2, @t3:=4; 
mysql> SELECT @t1, @t2, @t3, @t4 := @[email protected][email protected]; 
+------+------+------+--------------------+ 
| @t1 | @t2 | @t3 | @t4 := @[email protected][email protected] | 
+------+------+------+--------------------+ 
| 1 | 2 | 4 |     7 | 
+------+------+------+--------------------+ 

Taken từ MySQL 8.4 User Defined Variables

+0

Dường như nó không được chấp nhận: 'mysql> @num: = 0;' sẽ đưa ra lỗi. – user198729

+0

Đó có phải là một câu lệnh MySQL hợp lệ không? Bạn có thể định nghĩa các biến như thế không? –

+0

Vì lợi ích của bất kỳ ai đọc những nhận xét này, nó không được dùng nữa. Và cảm ơn @AnthonyForloney vì đã phổ biến những điều cơ bản. Đây là lý do tại sao tôi yêu stackoverflow. – billynoah

2

Cả hai đều là toán tử gán.

: = được tạo ra rõ ràng hơn vì = cũng là toán tử tương đương trong SQL. WHERE x = 1; (hầu hết các ngôn ngữ máy tính là ==)

+0

heh .. mà đặt ra câu hỏi, tại sao heck không chỉ sử dụng '==' và '=' như phần còn lại của vũ trụ? – billynoah

Các vấn đề liên quan