บางครั้งต้องตรวจสอบว่าเรคคอร์ดเฉพาะมีอยู่ในตารางหรือไม่ สามารถทำได้ด้วยคำสั่ง EXISTS ซึ่งคืนค่า TRUE หาก Subquery คืนแถวข้อมูลมาหนึ่งแถวขึ้นไป
ไวยากรณ์
SELECT * FROM table_name WHERE EXISTS(sub_query)
หาก Subquery คืนแถวข้อมูล 1 แถวขึ้นไป EXISTS จะคืน TRUE
ขั้นตอนตรวจสอบเรคคอร์ดในตารางด้วย MySQL ใน Python
นำเข้า MySQL Connector
สร้างการเชื่อมต่อด้วย
connect()สร้างออบเจ็กต์ cursor ด้วย
cursor()สร้างคำสั่ง SQL ที่เหมาะสม
รันคำสั่งด้วย
execute()ปิดการเชื่อมต่อ
สมมติว่ามีตาราง Sales ดังนี้:
+------------+---------+ | sale_price | tax | +------------+---------+ | 1000 | 200 | | 500 | 100 | | 50 | 50 | | 180 | 180 | +------------+---------+
ตัวอย่าง
import mysql.connector
db = mysql.connector.connect(
host="your_host",
user="your_username",
password="your_password",
database="database_name"
)
cursor = db.cursor()
query = "SELECT sale_price FROM Sales WHERE EXISTS(SELECT * FROM Sales WHERE tax > 150)"
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
print(row)
db.close()Subquery คืน TRUE เนื่องจากมีเรคคอร์ดที่ tax มากกว่า 150 ดังนั้น EXISTS จึงคืน TRUE หากไม่มีเรคคอร์ดที่ tax > 150 จะคืน FALSE
ผลลัพธ์
1000 500 180