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

ความแตกต่างระหว่างตัวดำเนินการกำหนดค่า = และ := ใน MySQL


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

= ตัวดำเนินการกำหนดค่า ไม่ว่าจะเป็นส่วนหนึ่งของคำสั่ง SET หรือเป็นส่วนหนึ่งของ SET clause ในคำสั่ง 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

ในคำสั่ง 2 คำสั่งข้างต้น เราใช้ตัวดำเนินการ = และ := เพื่อ UPDATE ค่าของตาราง

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)

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

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