Toán tử in trong MySQL là gì?

Câu trả lời của Paul Dixon đã làm việc tuyệt vời cho tôi. Để thêm vào điều này, đây là một số điều tôi quan sát được đối với những người quan tâm đến việc sử dụng REGEXP

Để hoàn thành nhiều bộ lọc THÍCH với Ký tự đại diện

 SELECT * FROM fiberbox WHERE field LIKE '%1740 %'
                           OR field LIKE '%1938 %'
                           OR field LIKE '%1940 %';  

Sử dụng thay thế REGEXP

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';

Giá trị trong dấu ngoặc kép REGEXP và giữa. Toán tử (OR) được coi là ký tự đại diện. Thông thường, REGEXP sẽ yêu cầu các biểu thức ký tự đại diện như (. *)1740 (. *) hoạt động như %1740 %

Nếu bạn cần kiểm soát nhiều hơn đối với vị trí của ký tự đại diện, hãy sử dụng một số biến thể này

Để hoàn thành LIKE với Vị trí ký tự đại diện được kiểm soát

SELECT * FROM fiberbox WHERE field LIKE '1740 %'
                          OR field LIKE '%1938 '
                          OR field LIKE '%1940 % test';  

Sử dụng

SELECT * FROM fiberbox WHERE field REGEXP '^1740 |1938 $|1940 (.*) test';
  • Đặt ^ trước giá trị cho biết bắt đầu dòng

  • Đặt $ sau giá trị cho biết cuối dòng

  • đặt (. *) hoạt động giống như ký tự đại diện %

  • Các. chỉ ra bất kỳ ký tự đơn nào, ngoại trừ ngắt dòng. đặt. bên trong () với * (. *) thêm một mẫu lặp lại cho biết bất kỳ số lượng ký tự nào cho đến cuối dòng

Có nhiều cách hiệu quả hơn để thu hẹp các đối sánh cụ thể, nhưng điều đó yêu cầu xem xét thêm Biểu thức chính quy. GHI CHÚ. Không phải tất cả các mẫu biểu thức chính quy đều hoạt động trong các câu lệnh MySQL. Bạn sẽ cần kiểm tra các mẫu của mình và xem những gì hoạt động

Cuối cùng, để hoàn thành nhiều bộ lọc THÍCH và KHÔNG THÍCH

SELECT * FROM fiberbox WHERE field LIKE '%1740 %'
                          OR field LIKE '%1938 %'
                          OR field NOT LIKE '%1940 %'
                          OR field NOT LIKE 'test %'
                          OR field = '9999';

Sử dụng thay thế REGEXP

SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |^9999$'
                          OR field NOT REGEXP '1940 |^test ';

HOẶC Thay thế hỗn hợp

SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 '
                          OR field NOT REGEXP '1940 |^test '
                          OR field NOT LIKE 'test %'
                          OR field = '9999';

Lưu ý rằng tôi đã tách bộ NOT trong một bộ lọc WHERE riêng biệt. Tôi đã thử nghiệm sử dụng các mẫu phủ định, các mẫu hướng tới tương lai, v.v. Tuy nhiên, những biểu hiện này dường như không mang lại kết quả mong muốn. Trong ví dụ đầu tiên ở trên, tôi sử dụng ^9999$ để biểu thị đối sánh chính xác. Điều này cho phép bạn thêm các đối sánh cụ thể với các đối sánh ký tự đại diện trong cùng một biểu thức. Tuy nhiên, bạn cũng có thể kết hợp các loại câu lệnh này như bạn có thể thấy trong ví dụ thứ hai được liệt kê

Về hiệu suất, tôi đã chạy một số thử nghiệm nhỏ đối với bảng hiện có và không tìm thấy sự khác biệt nào giữa các biến thể của mình. Tuy nhiên, tôi cho rằng hiệu suất có thể là một vấn đề với cơ sở dữ liệu lớn hơn, trường lớn hơn, số lượng bản ghi lớn hơn và bộ lọc phức tạp hơn

Như mọi khi, hãy sử dụng logic ở trên vì nó hợp lý

Nếu bạn muốn tìm hiểu thêm về biểu thức chính quy, tôi khuyên bạn nên truy cập www. biểu thức chính quy. thông tin như một trang web tham khảo tốt

Mệnh đề WHERE trong MySQL là một từ khóa được sử dụng để chỉ định tiêu chí chính xác của dữ liệu hoặc các hàng sẽ bị ảnh hưởng bởi câu lệnh SQL được chỉ định. Mệnh đề WHERE có thể được sử dụng với các câu lệnh SQL như INSERT, UPDATE, SELECT và DELETE để lọc các bản ghi và thực hiện các thao tác khác nhau trên dữ liệu

Chúng ta đã xem xét cách truy vấn dữ liệu từ cơ sở dữ liệu bằng cách sử dụng câu lệnh SELECT trong hướng dẫn trước. Câu lệnh SELECT trả về tất cả các kết quả từ bảng cơ sở dữ liệu được truy vấn

Tuy nhiên, có những lúc chúng ta muốn giới hạn kết quả truy vấn ở một điều kiện cụ thể. Mệnh đề WHERE trong SQL có ích trong những tình huống như vậy

Toán tử in trong MySQL là gì?
Mệnh đề WHERE trong MySQL

Mệnh đề WHERE Cú pháp

Cú pháp cơ bản cho mệnh đề WHERE khi được sử dụng trong câu lệnh MySQL SELECT WHERE như sau

SELECT * FROM tableName WHERE condition;

ĐÂY

  • “SELECT * FROM tableName” là câu lệnh CHỌN tiêu chuẩn
  • “WHERE” là từ khóa giới hạn tập kết quả truy vấn đã chọn của chúng tôi và “điều kiện” là bộ lọc được áp dụng trên kết quả. Bộ lọc có thể là một phạm vi, một giá trị hoặc truy vấn phụ

Bây giờ hãy xem một ví dụ thực tế

Giả sử chúng tôi muốn lấy thông tin cá nhân của một thành viên từ bảng thành viên với số thành viên là 1, chúng tôi sẽ sử dụng tập lệnh sau để đạt được điều đó

________số 8

Thực thi tập lệnh trên trong bàn làm việc của MySQL trên “myflixdb” sẽ tạo ra các kết quả sau






















membership_number












full_names












gender












date_of_birth












physical_address












postal_address












contct_number












email


























1












Janet Jones












Female












21-07-1980












First Street Plot No 4












Private Bag












0759 253 542












[email protected]





















Mệnh đề WHERE kết hợp với – AND LOGICAL Operator

Điều kiện WHERE trong MySQL khi được sử dụng cùng với toán tử logic AND, chỉ được thực thi nếu đáp ứng TẤT CẢ tiêu chí bộ lọc đã chỉ định

Bây giờ chúng ta hãy xem một ví dụ thực tế – Giả sử chúng ta muốn lấy danh sách tất cả các phim thuộc thể loại 2 được phát hành vào năm 2008, chúng ta sẽ sử dụng tập lệnh hiển thị bên dưới để đạt được điều đó

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';
0

Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với “myflixdb” sẽ tạo ra các kết quả sau

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';
1

Mệnh đề WHERE kết hợp với – OR LOGICAL Operator

Mệnh đề WHERE khi được sử dụng cùng với toán tử OR, chỉ được thực thi nếu bất kỳ hoặc toàn bộ tiêu chí bộ lọc được chỉ định được đáp ứng

Tập lệnh sau lấy tất cả các phim thuộc loại 1 hoặc loại 2

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';
2

Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với “myflixdb” sẽ tạo ra các kết quả sau

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';
3

Mệnh đề WHERE kết hợp với – Từ khóa IN

Mệnh đề WHERE trong MySQL, khi được sử dụng cùng với từ khóa IN chỉ ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa IN. Câu lệnh IN của MySQL giúp giảm số mệnh đề OR mà bạn có thể phải sử dụng

Truy vấn MySQL WHERE IN sau đây cung cấp các hàng có số_thành_viên là 1 , 2 hoặc 3

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';
4

Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với “myflixdb” sẽ tạo ra các kết quả sau

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';
5

Mệnh đề WHERE kết hợp với – Từ khóa NOT IN

Mệnh đề WHERE khi được sử dụng cùng với từ khóa NOT IN KHÔNG ảnh hưởng đến các hàng có giá trị khớp với danh sách các giá trị được cung cấp trong từ khóa NOT IN

Truy vấn sau đây cung cấp các hàng có số_thành_viên KHÔNG phải là 1 , 2 hoặc 3

 SELECT * FROM fiberbox WHERE field REGEXP '1740 |1938 |1940 ';
6

Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với “myflixdb” sẽ tạo ra các kết quả sau

SELECT * FROM `members` WHERE `membership_number` = 1;
0

Mệnh đề WHERE kết hợp với – COMPARISON Operator

Các toán tử so sánh nhỏ hơn (), bằng (=), không bằng () có thể được sử dụng với Mệnh đề WHERE

= Bằng

Đoạn script sau lấy tất cả các thành viên nữ từ bảng thành viên bằng cách sử dụng toán tử so sánh bằng

SELECT * FROM `members` WHERE `membership_number` = 1;
1

Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với “myflixdb” sẽ tạo ra các kết quả sau

SELECT * FROM `members` WHERE `membership_number` = 1;
2

> Lớn hơn

Tập lệnh sau nhận tất cả các khoản thanh toán lớn hơn 2.000 từ bảng thanh toán

CHỌN * TỪ `thanh toán` WHERE `amount_đã thanh toán` > 2000;

Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với “myflixdb” sẽ tạo ra các kết quả sau

SELECT * FROM `members` WHERE `membership_number` = 1;
3

< > Không Bằng

Tập lệnh sau lấy tất cả các phim có id danh mục không phải là 1

SELECT * FROM `members` WHERE `membership_number` = 1;
4

Thực thi tập lệnh trên trong bàn làm việc của MySQL đối với “myflixdb” sẽ tạo ra các kết quả sau

SELECT * FROM `members` WHERE `membership_number` = 1;
5

Tóm lược

  • Mệnh đề SQL WHERE được sử dụng để hạn chế số lượng hàng bị ảnh hưởng bởi truy vấn CHỌN, CẬP NHẬT hoặc XÓA
  • Điều kiện WHERE trong SQL có thể được sử dụng cùng với các toán tử logic như AND và OR, các toán tử so sánh như ,= v.v.
  • Khi được sử dụng với toán tử logic AND, tất cả các tiêu chí phải được đáp ứng
  • Khi được sử dụng với toán tử logic OR, bất kỳ tiêu chí nào cũng phải được đáp ứng
  • Từ khóa IN được sử dụng để chọn các hàng khớp với danh sách các giá trị

Trêu ghẹo não

Giả sử chúng ta muốn lấy danh sách các phim đã thuê nhưng chưa trả đúng hạn 25/06/2012. Chúng ta có thể sử dụng mệnh đề câu lệnh SQL WHERE cùng với toán tử so sánh nhỏ hơn và toán tử logic AND để đạt được điều đó

Ví dụ toán tử in trong SQL là gì?

Toán tử IN được dùng để chỉ định danh sách các giá trị hoặc truy vấn phụ trong mệnh đề WHERE . Một truy vấn phụ hoặc danh sách các giá trị phải được chỉ định trong dấu ngoặc đơn. g. VÀO (giá trị1, giá trị2,. ) hoặc IN (Chọn truy vấn).

Mệnh đề in hoạt động như thế nào trong MySQL?

Toán tử MySQL IN được sử dụng để truy xuất tập kết quả bằng cách kiểm tra xem một giá trị từ tập hợp các giá trị bằng chữ hoặc do truy vấn phụ cung cấp có khớp hay không. Basically, this operator helps to determine the specific value if available in the result of subquery using the WHERE clause.

Sự khác biệt giữa toán tử giữa và trong trong MySQL là gì?

Cả hai toán tử này đều được sử dụng để tìm ra nhiều giá trị từ bảng. Sự khác biệt giữa các toán tử này là toán tử BETWEEN được sử dụng để chọn một dải dữ liệu giữa hai giá trị trong khi toán tử IN cho phép bạn chỉ định nhiều giá trị .

giữa và trong toán tử là gì?

Điều kiện BETWEEN của SQL cho phép bạn dễ dàng kiểm tra xem một biểu thức có nằm trong một dải giá trị (bao gồm) hay không . Các giá trị có thể là văn bản, ngày hoặc số. Nó có thể được sử dụng trong câu lệnh SELECT, INSERT, UPDATE hoặc DELETE.