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

วิธีตรวจสอบว่า varchar มีเครื่องหมายเปอร์เซ็นต์ (%) ใน MySQL

การค้นหาเครื่องหมายเปอร์เซ็นต์ในคอลัมน์ VARCHAR ด้วย MySQL

ใน MySQL คุณสามารถใช้ตัวดำเนินการ LIKE ร่วมกับ ESCAPE เพื่อค้นหาเครื่องหมายเปอร์เซ็นต์ (%) ที่แท้จริงในคอลัมน์ VARCHAR ได้ เนื่องจากเครื่องหมาย % เป็นอักขระพิเศษ (wildcard) ใน LIKE จึงต้องใช้ escape character เพื่อให้ MySQL รู้ว่าต้องการค้นหาตัวอักษร % จริงๆ

ไวยากรณ์

SELECT * FROM yourTableName WHERE yourColumnName LIKE '%|%%' ESCAPE '|';

ตัวอย่างการใช้งาน

สร้างตารางทดสอบ:

CREATE TABLE FindPercentInVarcharDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Words VARCHAR(30),
    PRIMARY KEY(Id)
);

เพิ่มข้อมูลทดสอบ:

INSERT INTO FindPercentInVarcharDemo(Words) VALUES('This is a My%SQL Program');
INSERT INTO FindPercentInVarcharDemo(Words) VALUES('Java is an object oriented');
INSERT INTO FindPercentInVarcharDemo(Words) VALUES('C# is also an object%oriented');

แสดงข้อมูลทั้งหมด:

SELECT * FROM FindPercentInVarcharDemo;

ผลลัพธ์:

+----+-------------------------------+
| Id | Words                         |
+----+-------------------------------+
| 1  | This is a My%SQL Program      |
| 2  | Java is an object oriented    |
| 4  | C# is also an object%oriented |
+----+-------------------------------+

ค้นหาแถวที่มีเครื่องหมาย %:

SELECT * FROM FindPercentInVarcharDemo WHERE Words LIKE '%|%%' ESCAPE '|';

ผลลัพธ์ (แสดงเฉพาะแถวที่มี %):

+----+-------------------------------+
| Id | Words                         |
+----+-------------------------------+
| 1  | This is a My%SQL Program      |
| 4  | C# is also an object%oriented |
+----+-------------------------------+

คำอธิบาย

  • ESCAPE '|' กำหนดให้ | เป็นอักขระ escape
  • '%|%%' หมายถึง: % (wildcard ใดๆ) ตามด้วย |% (เครื่องหมาย % จริง) ตามด้วย % (wildcard ใดๆ)
  • วิธีนี้ใช้ได้กับเครื่องหมายอื่นๆ เช่น _ (underscore) โดยเปลี่ยนเป็น '%|_%' แทน