SS090701 - วิธีการใช้ LIKE Function กับสัญลักษณ์ Brackets

Modified on 2009/07/15 14:00 by ninefyi — Categorized as: SQL Server

คือว่าพอดีในข้อมูลของตารางๆ ตารางหนึ่งเก็บข้อมูลที่มี '[' ดังนั้นเลยหาวิธีการค้นหาข้อมูลที่ประกอบด้วย '[' ขึ้นมาให้ได้ โดยปกติผมก็มักจะใช้ LIKE function ในการค้นหาคำที่มีอยู่ในฟิลด์นั้น แต่ว่าถ้าค้นหาสัญลักษณ์พิเศษบางอย่างจะไม่สามารถค้นหาได้เช่น '[' ก็เลยไปค้นพบสองแบบ แบบแรกง่ายที่สุดคือเปลี่ยนจากการใช้ LIKE ไปใช้ CHARINDEX แทน ซึ่งฟังก์ชั่นการทำงานของ CHARINDEX ก็จะคล้ายๆ กับ LIKE คับ มาลองตัวอย่างดูกันนะครับ

CREATE TABLE Table1
(
	Col1 INT IDENTITY,
	Col2 VARCHAR(100)
)

INSERT INTO Table1(Col2)
SELECT 'Data 1'
UNION ALL
SELECT 'Data [2]'
UNION ALL 
SELECT 'Data [3]'

SELECT * 
FROM Table1

SELECT * 
FROM Table1 
WHERE Col2 LIKE '%\[%' ESCAPE '\'

SELECT * 
FROM Table1 
WHERE CHARINDEX('[', Col2) > 0

DROP TABLE Table1