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

แบบสอบถามสำหรับการนำ MySQL LIKE เป็น MySQL IN ไปใช้หรือไม่


ในการดำเนินการค้นหาเช่น MySQL IN() คุณต้องใช้ COUNT(), IF() พร้อมกับตัวดำเนินการ LIKE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> Subject varchar(80) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.58 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('MySQLMongoDB'); Query OK, 1 แถวได้รับผลกระทบ (0.86 วินาที)mysql> แทรกลงในค่า DemoTable ('MySQL'); Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรก ลงในค่า DemoTable ('JavaMySQL'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable ('MongoDB'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า DemoTable ('Java ');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)

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

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

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

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

นี่คือแบบสอบถามสำหรับการใช้งาน LIKE เป็น IN() -

mysql> select -> count(if(Subject like '%MySQL%',1,NULL)) เป็น MySQLCount, -> count(if(Subject like '%Java%',1,NULL)) เป็น JavaCount, -> นับ (ถ้า (หัวเรื่องเช่น '%MongoDB%',1,NULL)) เป็น MongoDBCount -> จาก DemoTable;

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

<ก่อนหน้า>+------------+-----------+-------------+| MySQLCount | JavaCount | MongoDBCount |+------------+-----------+------------+| 3 | 2 | 2 |+------------+-----------+--------------+1 แถวในชุด (0.00 วินาที )