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

เหตุใดจึงไม่แนะนำให้ใช้การผสมผสานระหว่างค่าที่ยกมาและค่าที่ไม่อยู่ในรายการฟังก์ชัน MySQL IN ()


ที่จริงแล้ว MySQL มีกฎการเปรียบเทียบที่แตกต่างกันสำหรับค่าที่ยกมา เช่น สตริง และค่าที่ไม่ได้ใส่เครื่องหมายอัญประกาศ เช่น ตัวเลข ในการผสมค่าที่ยกมาและ unquoted ในรายการฟังก์ชัน IN() อาจทำให้ชุดผลลัพธ์ไม่สอดคล้องกัน ตัวอย่างเช่น เราต้องไม่เขียนแบบสอบถามด้วยฟังก์ชัน IN() ดังด้านล่าง −

Select Salary from employee where ID IN(1,’a’,2,3,’c’)

วิธีที่ดีกว่าในการเขียนข้อความค้นหาข้างต้นมีดังต่อไปนี้ −

Select Salary from employee where ID IN(‘1’,’a’,’2’,’3’,’c’)