Ký tự đại diện SQL
Ký tự đại diện SQL
Ký tự đại diện được sử dụng để thay thế một hoặc nhiều ký tự trong chuỗi.
Ký tự đại diện được sử dụng với toán tử LIKE
. Toán LIKE
được sử dụng trong mệnh đề WHERE
để tìm kiếm mẫu được chỉ định trong một cột.
Ví dụ
Trả về tất cả khách hàng bắt đầu bằng chữ 'a':
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
Hãy tự mình thử »Ký tự đại diện
Symbol | Description |
---|---|
% | Represents zero or more characters |
_ | Represents a single character |
[] | Represents any single character within the brackets * |
^ | Represents any character not in the brackets * |
- | Represents any single character within the specified range * |
{} | Represents any escaped character ** |
* Không được hỗ trợ trong cơ sở dữ liệu PostgreSQL và MySQL.
** Chỉ được hỗ trợ trong cơ sở dữ liệu Oracle.
Cơ sở dữ liệu demo
Dưới đây là lựa chọn từ bảng Khách hàng được sử dụng trong các ví dụ:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Sử dụng ký tự %
Ký tự đại diện %
đại diện cho bất kỳ số lượng ký tự nào, thậm chí là 0 ký tự.
Ví dụ
Trả về tất cả các khách hàng kết thúc bằng mẫu 'es':
SELECT * FROM Customers
WHERE CustomerName LIKE '%es';
Hãy tự mình thử »Ví dụ
Trả về tất cả khách hàng có chứa mẫu 'mer':
SELECT * FROM Customers
WHERE CustomerName LIKE '%mer%';
Hãy tự mình thử »Sử dụng _ Ký tự đại diện
Ký tự đại diện _
đại diện cho một ký tự đơn.
Nó có thể là bất kỳ ký tự hoặc số nào, nhưng mỗi _
đại diện cho một và chỉ một ký tự.
Ví dụ
Trả về tất cả khách hàng có City
bắt đầu bằng bất kỳ ký tự nào, theo sau là "ondon":
SELECT * FROM Customers
WHERE City LIKE '_ondon';
Hãy tự mình thử »Ví dụ
Trả về tất cả khách hàng có City
bắt đầu bằng "L", theo sau là 3 ký tự bất kỳ, kết thúc bằng "on":
SELECT * FROM Customers
WHERE City LIKE 'L___on';
Hãy tự mình thử »Sử dụng ký tự đại diện []
Ký tự đại diện []
trả về kết quả nếu bất kỳ ký tự nào bên trong khớp.
Ví dụ
Trả về tất cả khách hàng bắt đầu bằng "b", "s" hoặc "p":
SELECT * FROM Customers
WHERE CustomerName LIKE '[bsp]%';
Hãy tự mình thử »Sử dụng - Ký tự đại diện
Ký tự đại diện -
cho phép bạn chỉ định một phạm vi ký tự bên trong ký tự đại diện []
.
Ví dụ
Trả về tất cả khách hàng bắt đầu bằng "a", "b", "c", "d", "e" hoặc "f":
SELECT * FROM Customers
WHERE CustomerName LIKE '[a-f]%';
Hãy tự mình thử »Kết hợp các ký tự đại diện
Bất kỳ ký tự đại diện nào, như %
và _
, đều có thể được sử dụng kết hợp với các ký tự đại diện khác.
Ví dụ
Trả về tất cả khách hàng bắt đầu bằng "a" và có độ dài ít nhất 3 ký tự:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
Hãy tự mình thử »Ví dụ
Trả về tất cả khách hàng có chữ "r" ở vị trí thứ hai:
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
Hãy tự mình thử »Không có ký tự đại diện
Nếu không có ký tự đại diện nào được chỉ định thì cụm từ đó phải khớp chính xác để trả về kết quả.
Ví dụ
Trả lại tất cả khách hàng từ Tây Ban Nha:
SELECT * FROM Customers
WHERE Country
LIKE 'Spain';
Hãy tự mình thử »Ký tự đại diện Microsoft Access
Cơ sở dữ liệu Microsoft Access có một số ký tự đại diện khác:
Symbol | Description | Example |
---|---|---|
* | Represents zero or more characters | bl* finds bl, black, blue, and blob |
? | Represents a single character | h?t finds hot, hat, and hit |
[] | Represents any single character within the brackets | h[oa]t finds hot and hat, but not hit |
! | Represents any character not in the brackets | h[!oa]t finds hit, but not hot and hat |
- | Represents any single character within the specified range | c[a-b]t finds cat and cbt |
# | Represents any single numeric character | 2#5 finds 205, 215, 225, 235, 245, 255, 265, 275, 285, and 295 |