Trong MySQL, bạn có thể sử dụng
SELECT 'Charlie' NOT LIKE 'Char%';0 để thực hiện phép phủ định của toán tử
SELECT 'Charlie' NOT LIKE 'Char%';1. Nói cách khác,
SELECT 'Charlie' NOT LIKE 'Char%';0 trả về kết quả ngược lại với
SELECT 'Charlie' NOT LIKE 'Char%';1
Nếu chuỗi khớp với mẫu được cung cấp, kết quả là
SELECT 'Charlie' NOT LIKE 'Char%';4, nếu không thì là
SELECT 'Charlie' NOT LIKE 'Char%';5
Mẫu không nhất thiết phải là một chuỗi ký tự. Chức năng này có thể được sử dụng với biểu thức chuỗi và cột bảng
cú pháp
Cú pháp diễn ra như thế này
expr NOT LIKE pat [ESCAPE 'escape_char']
Trong đó
SELECT 'Charlie' NOT LIKE 'Char%';6 là chuỗi đầu vào và
SELECT 'Charlie' NOT LIKE 'Char%';7 là mẫu mà bạn đang kiểm tra chuỗi dựa vào đó
Mệnh đề tùy chọn
SELECT 'Charlie' NOT LIKE 'Char%';8 cho phép bạn chỉ định một ký tự thoát. Ký tự thoát mặc định là
SELECT 'Charlie' NOT LIKE 'Char%';9, vì vậy bạn có thể bỏ qua mệnh đề này nếu không cần thay đổi
Toán tử này tương đương với việc làm như sau
NOT [expr LIKE pat [ESCAPE 'escape_char']]
Ví dụ 1 – Cách sử dụng cơ bản
Đây là một ví dụ về cách sử dụng toán tử này trong câu lệnh
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+0
SELECT 'Charlie' NOT LIKE 'Char%';
Kết quả
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+
Trong trường hợp này, giá trị trả về là
SELECT 'Charlie' NOT LIKE 'Char%';4 có nghĩa là chuỗi đầu vào thực sự khớp với mẫu
Ví dụ 2 – So với SELECT 'Charlie' NOT LIKE 'Char%';
1
Ở đây nó được so sánh với
SELECT 'Charlie' NOT LIKE 'Char%';1
SELECT 'Charlie' LIKE 'Char%' AS 'Like', 'Charlie' NOT LIKE 'Char%' AS 'Not Like';
Kết quả
+------+----------+ | Like | Not Like | +------+----------+ | 1 | 0 | +------+----------+
Ví dụ 3 – Cú pháp tương đương
Như đã đề cập,
SELECT 'Charlie' NOT LIKE 'Char%';0 tương đương với việc sử dụng toán tử logic
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+5 chống lại toán tử
SELECT 'Charlie' NOT LIKE 'Char%';1. Đây là những gì tôi muốn nói
SELECT 'Charlie' NOT LIKE 'Char%' AS 'NOT LIKE syntax', NOT ['Charlie' LIKE 'Char%'] AS 'Equivalent syntax';
Kết quả
+-----------------+-------------------+ | NOT LIKE syntax | Equivalent syntax | +-----------------+-------------------+ | 0 | 0 | +-----------------+-------------------+
Ví dụ 4 – Một ví dụ về cơ sở dữ liệu
Toán tử
SELECT 'Charlie' NOT LIKE 'Char%';1 thường được sử dụng trong mệnh đề
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+8 của câu lệnh
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+0 khi truy vấn cơ sở dữ liệu. Do đó,
SELECT 'Charlie' NOT LIKE 'Char%';0 có thể được sử dụng theo cách tương tự
Khi chúng tôi sử dụng
SELECT 'Charlie' NOT LIKE 'Char%';0 theo cách này, nó sẽ thu hẹp kết quả xuống chỉ những bản ghi không khớp, nhưng chúng tôi thấy kết quả thực tế [không chỉ là
SELECT 'Charlie' NOT LIKE 'Char%';5 hoặc
SELECT 'Charlie' NOT LIKE 'Char%';4]
Đây là một ví dụ về cách chúng ta có thể sử dụng toán tử này trong một truy vấn cơ sở dữ liệu
SELECT ArtistId, ArtistName FROM Artists WHERE ArtistName NOT LIKE 'B%';
Kết quả
+----------+------------------------+ | ArtistId | ArtistName | +----------+------------------------+ | 1 | Iron Maiden | | 2 | AC/DC | | 3 | Allan Holdsworth | | 5 | Devin Townsend | | 6 | Jim Reeves | | 7 | Tom Jones | | 8 | Maroon 5 | | 9 | The Script | | 10 | Lit | | 12 | Michael Learns to Rock | | 13 | Carabao | | 14 | Karnivool | +----------+------------------------+
Trong trường hợp này, đó là một truy vấn đơn giản trả về tất cả các nghệ sĩ có tên không bắt đầu bằng chữ B
Đây là danh sách đầy đủ các nghệ sĩ trong bảng đó
NOT [expr LIKE pat [ESCAPE 'escape_char']]0
Kết quả
NOT [expr LIKE pat [ESCAPE 'escape_char']]1
Vì vậy, nếu chúng tôi loại bỏ
+----------------------------+ | 'Charlie' NOT LIKE 'Char%' | +----------------------------+ | 0 | +----------------------------+5 [i. e. chúng tôi chỉ sử dụng
SELECT 'Charlie' NOT LIKE 'Char%';1] chúng tôi nhận được kết quả này
NOT [expr LIKE pat [ESCAPE 'escape_char']]2
Kết quả
NOT [expr LIKE pat [ESCAPE 'escape_char']]3
Ví dụ 5 – Thoát bằng Ký tự dấu gạch chéo ngược
Ký tự gạch chéo ngược [
SELECT 'Charlie' NOT LIKE 'Char%';9] có thể được sử dụng để thoát khỏi bất kỳ ký tự đại diện nào [
SELECT 'Charlie' LIKE 'Char%' AS 'Like', 'Charlie' NOT LIKE 'Char%' AS 'Not Like';7 và
SELECT 'Charlie' LIKE 'Char%' AS 'Like', 'Charlie' NOT LIKE 'Char%' AS 'Not Like';8]. Đây là một ví dụ về tìm kiếm như vậy có và không có ký tự thoát
NOT [expr LIKE pat [ESCAPE 'escape_char']]4
Kết quả
NOT [expr LIKE pat [ESCAPE 'escape_char']]5
Ví dụ 6 – Mệnh đề SELECT 'Charlie' NOT LIKE 'Char%';
8
Bạn cũng có thể sử dụng mệnh đề
SELECT 'Charlie' NOT LIKE 'Char%';8 để chỉ định ký tự thoát tùy chỉnh của riêng mình. Đây là một ví dụ