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 Show
Để hoàn thành nhiều bộ lọc THÍCH với Ký tự đại diện
Sử dụng thay thế REGEXP
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
Sử 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
Sử dụng thay thế REGEXP
HOẶC Thay thế hỗn hợp
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 Mệnh đề WHERE trong MySQLMệnh đề WHERE Cú phápCú 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
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 đó 0Thự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 1Mệnh đề WHERE kết hợp với – OR LOGICAL OperatorMệ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 2Thự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 3Mệnh đề WHERE kết hợp với – Từ khóa INMệ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 4Thự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 5Mệnh đề WHERE kết hợp với – Từ khóa NOT INMệ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 6Thự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 OperatorCá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ơnTậ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ằngTậ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
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. |