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

จะเลือกแถวได้อย่างไรเมื่อคอลัมน์ต้องเป็นไปตามค่าหลายค่าใน MySQL?


สำหรับสิ่งนี้ คุณสามารถใช้ GROUP BY HAVING clause ร่วมกับ IN() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1885 ( FirstName varchar(20), Subject varchar(50) );Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable1885 ('John', 'MySQL'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1885 ('John', 'MongoDB'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1885 ('Carol', 'MySQL'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.00 วินาที) mysql> แทรกลงในค่า DemoTable1885 ('David', 'Java'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.00 วินาที)

แสดงบางระเบียนในตารางโดยใช้คำสั่ง insert -

mysql> เลือก * จาก DemoTable1885;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+---------+| ชื่อจริง | หัวเรื่อง |+-----------+---------+| จอห์น | MySQL|| จอห์น | MongoDB|| แครอล | MySQL|| เดวิด | Java |+-----------+---------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกแถวเมื่อคอลัมน์ต้องเป็นไปตามค่าหลายค่า:

mysql> เลือก FirstName จาก DemoTable1885 โดยที่ Subject IN('MySQL','MongoDB') จัดกลุ่มตาม FirstName มี count(*)=2;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+| ชื่อจริง |+-----------+| John |+-----------+1 แถวในชุด (0.00 วินาที)