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

MySQL ไม่มี Double Equal Sign (==) ใช้ Single Equal (=) แทน

ใน MySQL ไม่มี Operator == สำหรับเปรียบเทียบความเท่ากัน ให้ใช้ Single Equal Sign (=) เท่านั้น การใช้ == จะเกิด Syntax Error

ทดสอบ: ตั้งค่า Variable

mysql> set @Number = 10;

ลองใช้ == (ผิด)

mysql> select 10 == @Number;

Error

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '==@Number' at line 1

ใช้ = (ถูกต้อง)

mysql> select 10 = @Number;

ผลลัพธ์: 1 (True)

+------------+
| 10=@Number |
+------------+
| 1          |
+------------+

Operator เปรียบเทียบใน MySQL

จุดสำคัญ: = ใน SQL คือ Comparison ไม่ใช่ Assignment

  • SET @x = 10 - Assignment (ใช้ := หรือ = ใน SET)
  • SELECT @x = 10 - Comparison (คืน 1 หรือ 0)
  • SELECT @x := 10 - Assignment ใน SELECT (คืน 10)

NULL-safe Comparison (<=>)

SELECT NULL = NULL;      -- NULL (ไม่ใช่ True/False)
SELECT NULL <=> NULL;     -- 1 (True)
SELECT 10 <=> NULL;       -- 0 (False)

ใช้ <=> เมื่อต้องการเปรียบเทียบรวม NULL ได้

ภาษาอื่น vs MySQL

  • C, Java, JavaScript, Python, PHP: ใช้ == สำหรับเท่ากัน
  • SQL (MySQL, PostgreSQL, SQL Server, Oracle): ใช้ = สำหรับเท่ากัน
  • Pascal, Ada: ใช้ = สำหรับเท่ากัน, := สำหรับ Assignment
Operatorชื่อตัวอย่างผลลัพธ์
=Equal10 = 101 (True)
<=>Null-safe EqualNULL <=> NULL1 (True)
<>Not Equal10 <> 51 (True)
!=Not Equal (Alias)10 != 51 (True)
>Greater Than10 > 51
<Less Than10 < 50
>=Greater or Equal10 >= 101
<=Less or Equal10 <= 101