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

แบบสอบถาม MySQL เพื่อตรวจสอบว่าสตริงมีค่า (สตริงย่อย) ภายในแถวเดียวกันหรือไม่


เนื่องจากเราต้องจับคู่สตริงจากแถวเดียวกัน ให้ใช้ตัวดำเนินการ LIKE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( FirstName varchar(100), FullName varchar(100));Query OK, 0 แถวได้รับผลกระทบ (0.53 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('John', 'John Smith'); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.08 วินาที) mysql> แทรกลงในค่า DemoTable ('David', 'John Miller'); ตกลงในแบบสอบถาม 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable ('Bob', 'Sam Miller'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.18 วินาที) mysql> แทรกลงในค่า DemoTable ('Chris', 'Chris Brown');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)

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

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

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

<ก่อนหน้า>+-----------+-------------+| ชื่อจริง | ชื่อเต็ม |+-----------+-------------+| จอห์น | จอห์น สมิธ || เดวิด | จอห์น มิลเลอร์ || บ๊อบ | แซม มิลเลอร์ || คริส | Chris Brown |+----------+--------------------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อตรวจสอบว่าสตริงมีค่าภายในแถวเดียวกันหรือไม่ -

mysql> เลือก FirstName,FullName จาก DemoTable โดยที่ FullName LIKE concat('%', FirstName, '%');

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

<ก่อนหน้า>+-----------+-------------+| ชื่อจริง | ชื่อเต็ม |+-----------+-------------+| จอห์น | จอห์น สมิธ || คริส | Chris Brown |+----------+--------------------+2 แถวในชุด (0.00 วินาที)