Tìm kiếm hàng với các ký tự đặc biệt trong SQL Server

Tìm kiếm hàng với các ký tự đặc biệt trong SQL Server
Tìm kiếm hàng với các ký tự đặc biệt trong SQL Server

Video: Tìm kiếm hàng với các ký tự đặc biệt trong SQL Server

Video: Tìm kiếm hàng với các ký tự đặc biệt trong SQL Server
Video: Geek Charming is hilarious 😂 #geekcharming #disney #shorts - YouTube 2024, Tháng tư
Anonim

Trong khi khắc phục sự cố lập trình ngày hôm nay, tôi nhận thấy rằng bạn không thể sử dụng tìm kiếm LIKE cho các cột chuỗi chứa các ký tự đặc biệt như% hoặc _ mà không sử dụng cú pháp đặc biệt. Việc tìm ra vấn đề chỉ mất vài phút, nhưng cú pháp ghi nhớ luôn dễ dàng hơn nếu bạn viết về nó.

Vì vậy, có, bài đăng này là chỉ vì lợi ích của tôi. Hy vọng rằng nó cũng sẽ giúp người khác.

Giả sử bạn muốn tìm bất kỳ trường nào có chứa văn bản "100%", vì vậy, bạn đặt cùng truy vấn này:

SELECT * FROM tablename WHERE fieldname LIKE ‘%100%%’

Thay vì những gì bạn muốn, bạn sẽ nhận được tất cả các hàng có chứa "100" cũng như các hàng có chứa "100%".

Vấn đề ở đây là SQL Server sử dụng dấu phần trăm, dấu gạch dưới và dấu ngoặc vuông làm ký tự đặc biệt. Bạn chỉ đơn giản là không thể sử dụng chúng như một ký tự đơn giản trong truy vấn LIKE mà không cần thoát chúng.

Quảng trường Bracket Escape

Bạn có thể bao quanh dấu% hoặc _ với dấu ngoặc vuông để nói với SQL Server rằng ký tự bên trong là một ký tự thông thường.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100[%]%’

Cú pháp ESCAPE T-SQL

Ngoài ra, bạn có thể nối thêm toán tử ESCAPE vào truy vấn của mình và thêm ký tự trước giá trị bạn muốn thoát.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100\%%’ ESCAPE ‘’

Phần '' ESCAPE của truy vấn yêu cầu công cụ SQL diễn giải ký tự sau ký tự như ký tự thay vì làm ký tự đại diện.

Cá nhân tôi tìm thấy phương pháp thứ hai dễ dàng hơn để đối phó với, và bạn có thể sử dụng nó để thoát khỏi một khung hình vuông là tốt.

Đề xuất: