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

ค้นหาแถวที่มีตัวเลขในข้อความคั่นคอมมาด้วย FIND_IN_SET ใน MySQL

ใช้ฟังก์ชัน FIND_IN_SET() เพื่อค้นหาค่าตัวเลขในคอลัมน์ที่เก็บตัวเลขคั่นด้วยคอมมา

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

mysql> CREATE TABLE DemoTable (
    CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    CustomerName VARCHAR(20),
    CustomerAllProductPrice TEXT
);
mysql> INSERT INTO DemoTable(CustomerName, CustomerAllProductPrice) VALUES
    ('Chris', '245,345,678,90,45,56,78'),
    ('Chris', '98,99,90,56,77'),
    ('David', '1000,2000,4000,56000');

ดูข้อมูล

mysql> SELECT * FROM DemoTable;
+------------+--------------+-------------------------+
| CustomerId | CustomerName | CustomerAllProductPrice |
+------------+--------------+-------------------------+
|          1 | Chris        | 245,345,678,90,45,56,78 |
|          2 | Chris        | 98,99,90,56,77          |
|          3 | David        | 1000,2000,4000,56000    |
+------------+--------------+-------------------------+

ค้นหาแถวที่มีเลข 4000

mysql> SELECT * FROM DemoTable
    -> WHERE FIND_IN_SET('4000', CustomerAllProductPrice);

ผลลัพธ์

+------------+--------------+-------------------------+
| CustomerId | CustomerName | CustomerAllProductPrice |
+------------+--------------+-------------------------+
|          3 | David        | 1000,2000,4000,56000    |
+------------+--------------+-------------------------+

หมายเหตุ: FIND_IN_SET ค้นหาค่าที่ตรงกันทุกตัวอักษร (exact match) ไม่ใช่ substring search