Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt giữa các toán tử gán =và:=là gì?


Trên thực tế, cả hai đều là toán tử gán và được sử dụng để gán giá trị nhưng sự khác biệt đáng kể giữa chúng như sau -

Toán tử

=gán giá trị như một phần của câu lệnh SET hoặc là một phần của mệnh đề SET trong câu lệnh UPDATE, trong bất kỳ trường hợp nào khác, toán tử =được hiểu như một toán tử so sánh. Mặt khác, toán tử:=gán một giá trị và nó không bao giờ được hiểu là toán tử so sánh.

mysql> Update estimated_cost1 SET Tender_value = '8570.000' where id = 2;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> Update estimated_cost1 SET Tender_value := '8575.000' where id = 2;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Trong hai truy vấn trên, chúng tôi đã sử dụng toán tử =cũng như:=để CẬP NHẬT giá trị của bảng.

mysql> Set @A = 100;
Query OK, 0 rows affected (0.01 sec)

mysql> Select @A;
+------+
| @A   |
+------+
| 100  |
+------+
1 row in set (0.00 sec)

mysql> Set @B := 100;
Query OK, 0 rows affected (0.00 sec)

mysql> Select @B;
+------+
| @B   |
+------+
| 100  |
+------+
1 row in set (0.00 sec)

Trong hai truy vấn trên, chúng tôi đã sử dụng toán tử =và:=để gán giá trị cho một biến người dùng. Chúng ta có thể thấy rằng trong cả hai trường hợp toán tử =và:=đều có cách sử dụng và chức năng giống nhau. Nhưng trong toán tử query =sau đây, hoạt động như một toán tử so sánh và cho kết quả là 'TRUE', tức là cả hai biến người dùng @A và @B đều có cùng giá trị.

mysql> Select @A = @B;
+---------+
| @A = @B |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)