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

จะใช้ตัวแปรผู้ใช้ในข้อ MySQL LIKE ได้อย่างไร?


โดยใช้ฟังก์ชัน CONCAT() เราสามารถทำงานกับตัวแปรผู้ใช้ในส่วนคำสั่ง LIKE ไวยากรณ์มีดังนี้

set @anyVariableName='anyValue';select yourColumnName1,yourColumnName2,yourColumnName3,...N จาก yourTableNamewhereyourColumnName like CONCAT('%', @anyVariableName, '%');

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้

mysql> สร้างตาราง UserVariableInLike-> (-> id int,-> Name varchar(100),-> Age int-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.83 วินาที)

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

mysql> แทรกลงในค่า UserVariableInLike (101,'John',23);Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงในค่า UserVariableInLike (102,'John Smith',24); Query OK, 1 แถวที่ได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า UserVariableInLike (103, 'Carol Smith', 23); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า UserVariableInLike (104, 'Johnson', 25); แบบสอบถาม ตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงในค่า UserVariableInLike (105,'Adam Smith',26); สืบค้นตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+------+-------------+------+| id | ชื่อ | อายุ |+------+-------------+------+| 101 | จอห์น | 23 || 102 | จอห์น สมิธ | 24 || 103 | แครอล สมิธ | 23 || 104 | จอห์นสัน | 25 || 105 | อดัม สมิธ | 26 |+------+-------------+------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่ใช้ตัวแปรผู้ใช้ในส่วนคำสั่ง LIKE แบบสอบถามมีดังต่อไปนี้ −

mysql> set @searchName='John';Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)mysql> select id,Name,Age from UserVariableInLike where Name like CONCAT('%',@searchName, '%'); 

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+------+-----------+------+| id | ชื่อ | อายุ |+------+-----------+------+| 101 | จอห์น | 23 || 102 | จอห์น สมิธ | 24 || 104 | จอห์นสัน | 25 |+------+-----------+------+3 แถวในชุด (0.05 วินาที)