Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách KHÔNG THÍCH hoạt động trong MySQL

Trong MySQL, bạn có thể sử dụng NOT LIKE để thực hiện phủ định LIKE nhà điều hành. Nói cách khác, NOT LIKE trả về kết quả ngược lại với LIKE .

Nếu chuỗi khớp với mẫu được cung cấp, kết quả là 0 , nếu không thì nó là 1 .

Mẫu không nhất thiết phải là một chuỗi ký tự. Hàm này có thể được sử dụng với các biểu thức chuỗi và cột bảng.

Cú pháp

Cú pháp như sau:

expr NOT LIKE pat [ESCAPE 'escape_char']

Ở đâu expr là chuỗi đầu vào và pat là mẫu mà bạn đang thử nghiệm chuỗi.

ESCAPE tùy chọn mệnh đề cho phép bạn chỉ định một ký tự thoát. Ký tự thoát mặc định là \ , vì vậy bạn có thể bỏ qua điều khoản này nếu bạn không cần thay đổi điều này.

Toán tử này tương đương với việc thực hiện các thao tác sau:

NOT (expr LIKE pat [ESCAPE 'escape_char'])

Ví dụ 1 - Cách sử dụng cơ bản

Dưới đây là ví dụ về cách sử dụng toán tử này trong SELECT tuyên bố:

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à 0 có nghĩa là chuỗi đầu vào did thực sự phù hợp với mô hình.

Ví dụ 2 - So với LIKE

Ở đây nó được so sánh với LIKE :

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, NOT LIKE tương đương với việc sử dụng NOT toán tử logic đối với LIKE nhà điều hành. Đây là ý tô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 - Ví dụ về Cơ sở dữ liệu

LIKE toán tử thường được sử dụng trong WHERE mệnh đề của một SELECT khi truy vấn cơ sở dữ liệu. Do đó, NOT LIKE có thể được sử dụng trong cùng một thời trang.

Khi chúng tôi sử dụng NOT LIKE theo cách này, nó 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à 1 hoặc 0 ).

Dưới đây là một ví dụ về cách chúng tôi 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 don’t bắt đầu bằng chữ B .

Đây là danh sách đầy đủ các nghệ sĩ trong bảng đó:

SELECT ArtistId, ArtistName
FROM Artists;

Kết quả:

+----------+------------------------+
| ArtistId | ArtistName             |
+----------+------------------------+
|        1 | Iron Maiden            |
|        2 | AC/DC                  |
|        3 | Allan Holdsworth       |
|        4 | Buddy Rich             |
|        5 | Devin Townsend         |
|        6 | Jim Reeves             |
|        7 | Tom Jones              |
|        8 | Maroon 5               |
|        9 | The Script             |
|       10 | Lit                    |
|       11 | Black Sabbath          |
|       12 | Michael Learns to Rock |
|       13 | Carabao                |
|       14 | Karnivool              |
|       15 | Birds of Tokyo         |
|       16 | Bodyjar                |
+----------+------------------------+

Vì vậy, nếu chúng ta xóa NOT (tức là chúng tôi chỉ sử dụng LIKE ) chúng tôi nhận được kết quả này:

SELECT ArtistId, ArtistName
FROM Artists
WHERE ArtistName LIKE 'B%';

Kết quả:

+----------+----------------+
| ArtistId | ArtistName     |
+----------+----------------+
|        4 | Buddy Rich     |
|       11 | Black Sabbath  |
|       15 | Birds of Tokyo |
|       16 | Bodyjar        |
+----------+----------------+

Ví dụ 5 - Thoát với ký tự gạch chéo ngược

Ký tự gạch chéo ngược (\ ) có thể được sử dụng để thoát khỏi bất kỳ ký tự đại diện nào (_% ). Dưới đây là một ví dụ về tìm kiếm như vậy có và không có ký tự thoát:

SELECT 
  'usr+123' NOT LIKE 'usr_123' AS 'Without escape',
  'usr+123' NOT LIKE 'usr\_123' AS 'With escape';

Kết quả:

+----------------+-------------+
| Without escape | With escape |
+----------------+-------------+
|              0 |           1 |
+----------------+-------------+

Ví dụ 6 - ESCAPE Mệnh đề

Bạn cũng có thể sử dụng ESCAPE để chỉ định ký tự thoát tùy chỉnh của riêng bạn. Đây là một ví dụ:

SELECT 
  'usr_123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 1',
  'usr+123' NOT LIKE 'usr|_123' ESCAPE '|' AS 'String 2';

Kết quả:

+----------+----------+
| String 1 | String 2 |
+----------+----------+
|        0 |        1 |
+----------+----------+

Ví dụ 7 - Biểu thức số

Toán tử này có thể được sử dụng trên các biểu thức số. Đây là một ví dụ:

SELECT 
  1234 NOT LIKE '12%',
  1234 NOT LIKE '12_';

Kết quả:

+---------------------+---------------------+
| 1234 NOT LIKE '12%' | 1234 NOT LIKE '12_' |
+---------------------+---------------------+
|                   0 |                   1 |
+---------------------+---------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TIME_FORMAT () Ví dụ - MySQL

  2. Mã lỗi:1215. Không thể thêm ràng buộc khóa ngoại (khóa ngoại)

  3. Cú pháp CẬP NHẬT SQL - Được DBMS liệt kê

  4. Làm thế nào để thay đổi tên bảng MySQL trong máy chủ Linux để không phân biệt chữ hoa chữ thường?

  5. Làm việc với con trỏ SQL