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

รวมคอลัมน์เพื่อค้นหาด้วย LIKE ผ่าน CONCAT() ใน MySQL

ใช้ CONCAT() รวมคอลัมน์ แล้วค่อยใช้ LIKE ค้นหา

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientFirstName VARCHAR(20),
    ClientLastName VARCHAR(20)
);
mysql> INSERT INTO DemoTable(ClientFirstName, ClientLastName) VALUES
    ('John', 'Smith'), ('John', 'Miller'), ('Carol', 'Taylor'), ('Adam', 'Smith');

ดูข้อมูล

mysql> SELECT * FROM DemoTable;
+----------+-----------------+----------------+
| ClientId | ClientFirstName | ClientLastName |
+----------+-----------------+----------------+
|        1 | John            | Smith          |
|        2 | John            | Miller         |
|        3 | Carol           | Taylor         |
|        4 | Adam            | Smith          |
+----------+-----------------+----------------+

ค้นหาชื่อเต็มที่ขึ้นต้นด้วย 'Jo' (John Smith, John Miller)

mysql> SELECT ClientId FROM DemoTable
    -> WHERE CONCAT(ClientFirstName, ' ', ClientLastName) LIKE 'Jo%';

ผลลัพธ์

+----------+
| ClientId |
+----------+
|        1 |
|        2 |
+----------+

คำอธิบาย: CONCAT(ClientFirstName, ' ', ClientLastName) สร้างชื่อเต็ม "John Smith" แล้ว LIKE 'Jo%' ค้นหาที่ขึ้นต้นด้วย "Jo"

ประยุกต์: ค้นหาชื่อเต็ม, ที่อยู่รวม, รหัสสินค้ารวม ฯลฯ