MySQL một phần chuỗi phù hợp
Sử dụng toán tử mysql> 2 và mẫu biểu thức chính quy, được mô tả trong phần này. Hoặc sử dụng mẫu SQL, được mô tả trong Công thức 4. 7 Show Các mẫu SQL (xem Công thức 4. 7) có khả năng được triển khai bởi các hệ thống cơ sở dữ liệu khác, vì vậy chúng có thể di động hợp lý ngoài MySQL. Mặt khác, chúng có phần hạn chế. Ví dụ: bạn có thể dễ dàng viết một mẫu SQL mysql> 3 để tìm các chuỗi chứa mysql> 4, nhưng bạn không thể viết một mẫu SQL duy nhất để xác định các chuỗi chứa bất kỳ ký tự nào trong số các ký tự mysql> 5, mysql> 6 hoặc mysql> 7. Bạn cũng không thể khớp nội dung chuỗi dựa trên các loại ký tự như chữ cái hoặc chữ số. Đối với các hoạt động như vậy, MySQL hỗ trợ một loại hoạt động khớp mẫu khác dựa trên biểu thức chính quy và toán tử mysql> 2 (hoặc mysql> 9 mysql> 2 để đảo ngược ý nghĩa của khớp). [] Kết hợp mysql> 2 sử dụng một tập hợp các phần tử mẫu khác với mysql> 2 và mysql> 3 (cả hai phần tử này đều không có gì đặc biệt trong biểu thức chính quy)Mẫu Những gì mô hình phù hợp mysql> 4bắt đầu chuỗi mysql> 5Kết thúc chuỗi mysql> 6Bất kỳ ký tự đơn nào mysql> 7Bất kỳ ký tự nào được liệt kê giữa các dấu ngoặc vuông mysql> 8Bất kỳ ký tự nào không được liệt kê giữa các dấu ngoặc vuông mysql> 9_______18_______0mysql> 1mysql> 0mysql> 3Luân phiên; mysql> 7Không hoặc nhiều phiên bản của phần tử trước mysql> 8Một hoặc nhiều trường hợp của phần tử trước mysql> 9mysql> 0mysql> 1mysql> 0 trường hợp của phần tử trướcmysql> 9mysql> 4mysql> 5mysql> 0mysql> 1Các trường hợp của phần tử trước mysql> 4 đến mysql> 0Bạn có thể đã quen thuộc với các ký tự mẫu biểu thức chính quy này, vì nhiều trong số chúng giống với các ký tự được sử dụng bởi vi, grep, sed và các tiện ích Unix khác hỗ trợ biểu thức chính quy. Hầu hết chúng cũng được sử dụng trong các biểu thức chính quy được hiểu bởi Perl, PHP và Python. (Ví dụ, Chương 10 thảo luận về khớp mẫu trong tập lệnh Perl. ) Đối với Java, các thư viện lớp Jakarta ORO hoặc Regexp cung cấp các khả năng đối sánh cũng sử dụng các ký tự này Phần trước về các mẫu SQL đã chỉ ra cách khớp các chuỗi con ở đầu hoặc cuối chuỗi hoặc ở một vị trí tùy ý hoặc cụ thể trong một chuỗi. Bạn có thể làm những điều tương tự với các biểu thức thông thường
Ngoài ra, các biểu thức chính quy có các khả năng khác và có thể thực hiện các loại đối sánh mà các mẫu SQL không thể thực hiện được. Ví dụ: biểu thức chính quy có thể chứa các lớp ký tự, khớp với bất kỳ ký tự nào trong lớp
Các khả năng biểu thức chính quy của MySQL cũng hỗ trợ các lớp ký tự POSIX. Các bộ ký tự cụ thể này khớp với nhau, như được mô tả trong bảng sau lớp POSIX Những gì lớp học phù hợp 9 Ký tự chữ cái và số mysql> 0Ký tự chữ cái mysql> 1Khoảng trắng (dấu cách hoặc ký tự tab) mysql> 2Ký tự điều khiển mysql> 3chữ số mysql> 4Ký tự đồ họa (không trống) mysql> 5Ký tự chữ thường mysql> 6Ký tự đồ họa hoặc khoảng trắng mysql> 7ký tự chấm câu mysql> 8Dấu cách, tab, xuống dòng, xuống dòng mysql> 9Ký tự chữ hoa mysql> 0Chữ số thập lục phân (_______62_______1, mysql> 2, mysql> 3)Các lớp POSIX được thiết kế để sử dụng trong các lớp ký tự, vì vậy bạn sử dụng chúng trong dấu ngoặc vuông. Biểu thức sau khớp với các giá trị chứa bất kỳ ký tự chữ số thập lục phân nào mysql> Biểu thức chính quy có thể chứa các thay thế. Cú pháp trông như thế này
Một thay thế tương tự như một lớp ký tự theo nghĩa là nó khớp nếu bất kỳ lựa chọn thay thế nào khớp. Nhưng không giống như một lớp ký tự, các lựa chọn thay thế không giới hạn ở các ký tự đơn lẻ—chúng có thể là các chuỗi hoặc thậm chí là các mẫu. Ví dụ: sự thay thế sau khớp với các chuỗi bắt đầu bằng một nguyên âm hoặc kết thúc bằng mysql> 4mysql> Dấu ngoặc đơn có thể được sử dụng để nhóm luân phiên. Ví dụ: nếu bạn muốn so khớp các chuỗi bao gồm toàn chữ số hoặc toàn chữ cái, bạn có thể thử mẫu này, sử dụng phép thay thế mysql> Nhưng khi kết quả truy vấn hiển thị, mẫu không hoạt động. Đó là bởi vì nhóm mysql> 4 với phương án thứ nhất và nhóm mysql> 5 với phương án thứ hai. Vì vậy, mẫu thực sự khớp với các chuỗi bắt đầu bằng một hoặc nhiều chữ số hoặc các chuỗi kết thúc bằng một hoặc nhiều chữ cái. Tuy nhiên, nếu bạn nhóm các lựa chọn thay thế trong ngoặc đơn, thì mysql> 4 và mysql> 5 sẽ áp dụng cho cả hai và mẫu sẽ hoạt động như bạn mong đợimysql> Không giống như đối sánh mẫu SQL, chỉ thành công nếu mẫu khớp với toàn bộ giá trị so sánh, biểu thức chính quy thành công nếu mẫu khớp với bất kỳ vị trí nào trong giá trị. Hai đối sánh mẫu sau đây là tương đương theo nghĩa là mỗi đối sánh chỉ thành công đối với các chuỗi chứa ký tự mysql> 6, nhưng đối sánh mẫu đầu tiên hiệu quả hơn vì mẫu đơn giản hơn'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$' Biểu thức chính quy không khớp với giá trị mysql> 0. Điều này đúng cho cả mysql> 2 và cho mysql> 9 mysql> 2mysql> 0Thực tế là một biểu thức chính quy khớp với một chuỗi nếu mẫu được tìm thấy ở bất kỳ đâu trong chuỗi có nghĩa là bạn phải cẩn thận để không vô tình chỉ định một mẫu khớp với chuỗi trống. Nếu bạn làm như vậy, nó sẽ khớp với mọi giá trị không phải ______75_______0. Ví dụ: mẫu mysql> 5 khớp với bất kỳ số lượng mysql> 5 ký tự nào, thậm chí không có ký tự nào. Nếu mục tiêu của bạn là chỉ khớp các chuỗi chứa các chuỗi không trống gồm _______ 5 ký tự, hãy sử dụng _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ để thay thế. mysql> 8 yêu cầu một hoặc nhiều phiên bản của phần tử mẫu trước đó để khớpGiống như đối sánh mẫu SQL được thực hiện bằng cách sử dụng 'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$'0, đối sánh biểu thức chính quy được thực hiện với mysql> 2 đôi khi tương đương với so sánh chuỗi con. Các ký tự phụ mysql> 4 và mysql> 5 phục vụ cùng một mục đích như 'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$'4 hoặc 'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$'5, ít nhất là nếu bạn đang tìm kiếm các chuỗi ký tự khớp mẫu so sánh chuỗi con 'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$'6 'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$'7 'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$'8 'abc' REGEXP 'b' 'abc' REGEXP '^.*b.*$'9 Đối với các chuỗi không theo nghĩa đen, thông thường không thể xây dựng phép so sánh chuỗi con tương đương. Ví dụ: để khớp các chuỗi bắt đầu bằng bất kỳ chuỗi chữ số không trống nào, bạn có thể sử dụng khớp mẫu này Làm cách nào để khớp chuỗi trong MySQL?Hàm STRCMP() trong MySQL dùng để so sánh 2 chuỗi. . Nếu string1 = string2, hàm này trả về 0 Nếu string1 < string2, hàm này trả về -1 Nếu string1 > string2, hàm này trả về 1 Nếu bất kỳ một hoặc cả hai chuỗi là NULL, hàm này trả về NULL Làm cách nào để sử dụng Regexp_like trong MySQL?Hàm REGEXP_LIKE() trong MySQL được sử dụng để so khớp mẫu. Nó so sánh xem các chuỗi đã cho có khớp với biểu thức chính quy hay không. . mysql> CHỌN REGEXP_LIKE ('Ấn Độ Indonesia', '^in', 'i') AS 'Không phân biệt chữ hoa chữ thường', REGEXP_LIKE ('Ấn Độ Indonesia', '^in', 'c') AS 'Phân biệt chữ hoa chữ thường'; Làm cách nào để sử dụng Ilike trong MySQL?Sử dụng mệnh đề LIKE bên trong PHP Script
. Hàm này nhận hai tham số và trả về TRUE nếu thành công hoặc FALSE nếu thất bại. PHP uses mysqli query() or mysql_query() function to select records in a MySQL table using Like clause. This function takes two parameters and returns TRUE on success or FALSE on failure.
Làm thế nào để viết hoặc điều kiện trong MySQL?Có thể sử dụng điều kiện MySQL OR trong câu lệnh INSERT. Ví dụ. XÁC NHẬN VÀO nhà cung cấp (supplier_id, nhà cung cấp_name) CHỌN customer_id, customer_name TỪ khách hàng WHERE state = 'Florida' OR state = 'California'; |