Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

อะไรคือความแตกต่างระหว่าง =และ:=ตัวดำเนินการมอบหมาย?


อันที่จริง ทั้งสองเป็นตัวดำเนินการมอบหมายและใช้เพื่อกำหนดค่า แต่ความแตกต่างที่สำคัญระหว่างทั้งสองมีดังนี้ −

=ตัวดำเนินการกำหนดค่าเป็นส่วนหนึ่งของคำสั่ง SET หรือเป็นส่วนหนึ่งของคำสั่ง SET ในคำสั่ง UPDATE ในกรณีอื่น ๆ =ตัวดำเนินการจะถูกตีความว่าเป็นตัวดำเนินการเปรียบเทียบ ในทางกลับกัน :=โอเปอเรเตอร์กำหนดค่าและจะไม่ถูกตีความว่าเป็นโอเปอเรเตอร์เปรียบเทียบ

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

ในข้อความค้นหาสองรายการข้างต้น เราได้ใช้ตัวดำเนินการ =และตัวดำเนินการ =เพื่ออัปเดตค่าของตาราง

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)

ในสองข้อความค้นหาข้างต้น เราใช้ตัวดำเนินการ =และ:=เพื่อกำหนดค่าให้กับตัวแปรผู้ใช้ เราจะเห็นได้ว่าในทั้งสองสถานการณ์ =โอเปอเรเตอร์ และ:=โอเปอเรเตอร์มีการใช้งานและการทำงานเหมือนกัน แต่ในเคียวรี =โอเปอเรเตอร์ต่อไปนี้ ทำงานเป็นตัวดำเนินการเปรียบเทียบและให้ผลลัพธ์เป็น 'TRUE' นั่นคือทั้งตัวแปรผู้ใช้ @A และ @B มีค่าเท่ากัน

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