โดยใช้ฟังก์ชัน 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 วินาที)