ĐĂNG KÝ MySQL
Cơ sở dữ liệu của chúng tôi có một bảng tên là SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;9 với dữ liệu trong các cột SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;0 và SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;1. Chúng tôi muốn xóa ' SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;2' ở đầu và ' SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;3' ở cuối mỗi SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;1 Show
Giải pháp 1Để xóa 4 ký tự đầu tiên SELECT SUBSTR(address, 5, LENGTH(address) -4) AS substring FROM web_address; Để xóa 4 ký tự cuối cùng SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address; Để xóa 4 ký tự đầu và 4 ký tự cuối SELECT SUBSTR(address, 5, LENGTH(address) -8) AS substring FROM web_address; Giải pháp 2Để xóa 4 ký tự đầu tiên ________số 8Để xóa 4 ký tự cuối cùng SELECT SUBSTRING(address, 1, LENGTH(address) -4) AS substring FROM web_address; Để xóa 4 ký tự đầu và 4 ký tự cuối SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;0 Giải pháp 3Để xóa tất cả các ký tự trước ký tự thứ hai ‘. ' từ bên phải SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;1 Để xóa tất cả các ký tự sau ký tự thứ hai ‘. ' từ bên trái SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;2 Để xóa tất cả các ký tự sau ký tự thứ hai ‘. ’ từ bên trái, sau đó xóa tất cả các ký tự trước ký tự ‘ đầu tiên. ' từ bên phải SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;3 Kết quả là substringexamplegooglelearnsqlThảo luậnCả giải pháp thứ nhất và thứ hai đều xóa một số ký tự được chỉ định khỏi văn bản bằng hàm SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;5 hoặc SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;6. SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;5 là từ đồng nghĩa với SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;6. Cả hai đều yêu cầu chuỗi và vị trí bắt đầu làm đối số. Đối số cuối cùng, xác định số lượng ký tự cần trích xuất, là tùy chọn. Nếu đối số cuối cùng bị bỏ qua, toàn bộ chuỗi (từ điểm bắt đầu) sẽ được trả về Trong giải pháp thứ ba, hàm SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;9 xóa văn bản trước hoặc sau các ký tự được chỉ định. Nó yêu cầu đối số là chuỗi, ký tự và số lượng phiên bản của ký tự sẽ gặp ở nơi bắt đầu trích xuất văn bản Hàm Chuỗi con MySQL được sử dụng để trích xuất một chuỗi con hoặc một phần chuỗi so với chuỗi đầu vào. Như tên gợi ý, hàm Chuỗi con hoạt động trên đầu vào chuỗi và trả về một chuỗi con nhỏ hơn theo các tùy chọn đã chỉ định Chúng ta cũng sẽ tìm hiểu về một biến thể khác của SUBSTRING có tên là SUBSTRING_INDEX. Hàm này chấp nhận ký tự hoặc giá trị Chuỗi làm dấu phân cách và thực hiện tìm kiếm theo giá trị dấu phân cách đã cho => Nhấp vào đây để xem toàn bộ loạt bài hướng dẫn về MySQL Chúng ta cũng sẽ xem xét một số ví dụ để hiểu cách sử dụng các hàm này trong khi truy vấn dữ liệu như một phần của truy vấn CHỌN Bạn sẽ học được gì
MySQL SUBSTRINGcú pháp SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;9 Có 2 cách để chúng ta có thể sử dụng hàm SUBSTRING Hãy hiểu cú pháp trước khi đi sâu vào các ví dụ
Định dạng 2 là một biến thể của định dạng 1 ngoại trừ việc nó dễ đọc hơn bằng cách sử dụng các từ khóa TỪ và CHO. Vì vậy, ở đây, TỪ được sử dụng trước khi đề cập đến giá trị start_index và FOR được sử dụng trước khi đề cập đến số lượng Hãy xem một số ví dụ để hiểu chức năng MySQL SUBSTRING Hãy lấy giá trị Chuỗi đầu vào làm Trợ giúp kiểm thử phần mềm Các chỉ mục chuỗi sẽ giống như bảng dưới đây 123456789101112131415161718192021Trợ giúp Kiểm tra phần mềm MySQL SUBSTRING Ví dụkhông tínhGiả sử chúng ta muốn trích xuất văn bản Trợ giúp từ Chuỗi ở trên – H đang có chỉ số là 18 Hãy xem truy vấn dưới đây SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;0 Điều quan trọng cần lưu ý ở đây là chúng tôi chưa đề cập đến bất kỳ giá trị nào cho số đếm, nhưng chúng tôi vẫn nhận được Chuỗi chính xác - điều này là do khi số đếm bị bỏ qua, toàn bộ Chuỗi bắt đầu từ chỉ mục đã cho được trả về Trong trường hợp này, nếu chúng ta đề cập đến Chỉ mục bắt đầu, ví dụ: cho 'T' (Chỉ số 10) SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;1 Như bạn có thể thấy ở trên, đầu ra chứa toàn bộ văn bản 'Testing Help' Với ĐếmBây giờ, hãy xem một ví dụ mà chúng ta sẽ đề cập đến số ký tự được trả về Giả sử chúng ta chỉ muốn trích xuất từ 'Thử nghiệm' từ Chuỗi 'Trợ giúp Kiểm tra Phần mềm'. Sau đó, chúng ta có thể đề cập đến số đếm là – 7 (là độ dài của từ 'Thử nghiệm) Hãy xem truy vấn dưới đây SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;2 Ở đây chúng tôi đã mô tả cả chỉ mục bắt đầu và số lượng ký tự như một phần của truy vấn để nhận được kết quả cần thiết Với Giá trị Chỉ số ÂmCho đến nay, đối với các ví dụ mà chúng ta đã thấy, chúng ta đã chỉ định start_index là một giá trị dương Chúng ta cũng có thể chỉ định start_index là số âm, điều này đơn giản có nghĩa là thay vì đếm từ bên trái, công cụ MySQL sẽ cố gắng đếm Start Index từ cuối Chuỗi Hãy xem một ví dụ Đối với chuỗi 'Trợ giúp kiểm tra phần mềm' của chúng tôi, hãy thêm một hàng bên dưới để xác định các chỉ mục phù hợp L123456789101112131415161718192021Trợ giúp Kiểm tra phần mềmR212019181716151413121110987654321 Vì vậy, hàng dưới cùng ở đây đại diện cho các chỉ mục phù hợp. Bây giờ, giả sử chúng ta muốn trích xuất từ 'Thử nghiệm' bằng cách sử dụng hàm SUBSTRING của MySQL với chỉ mục phù hợp Chỉ số bên phải cho 'T' trong Thử nghiệm là 12 (và chỉ số bên trái là 10) SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;3 Như bạn có thể thấy trong ví dụ trên, việc đề cập đến đúng chỉ mục dưới dạng giá trị âm sẽ vẫn mang lại kết quả tương tự Chỉ số nằm ngoài giới hạnBây giờ, hãy thử một số tình huống tiêu cực
SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;4
SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;5 Bạn có thể xem ở trên, ở đây số lượng được đề cập là 100, nhưng Chuỗi chỉ dài 21 ký tự
SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;6 Ở đây cũng vậy, sẽ không có lỗi và sẽ chỉ có một chuỗi trống sẽ là đầu ra MySQLSUBSTRING_INDEXĐây là một biến thể khác của hàm MySQL SUBSTRING Ở đây, thay vì đề cập đến giá trị thực của start_index, chúng ta chỉ cần đề cập đến ký tự và chỉ mục cũng như số lần dấu phân cách cần được tìm kiếm trước khi trả về kết quả Một điểm quan trọng cần lưu ý ở đây là SUBSTRING_INDEX MySQL SUBSTRING INDEX chức năng SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;7
Hãy hiểu điều này với sự giúp đỡ của một số ví dụ Chúng tôi sẽ sử dụng cùng một chuỗi 'Trợ giúp kiểm tra phần mềm' làm Chuỗi đầu vào cho tất cả các ví dụ mà chúng tôi sẽ thảo luận trong phần tiếp theo bên dưới Tìm kiếm một nhân vậtTrong khi tìm kiếm ký tự 'T', đầu ra sẽ là 'Phần mềm'. Lưu ý rằng khoảng trống thừa sau từ Phần mềm cũng sẽ được bao gồm SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;8 Tìm kiếm một ký tự xuất hiện nhiều lần. Đây, nó là – ‘e’ SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;00 trong ví dụ này. vì chúng tôi đã chỉ định số lượng là 1, đầu ra sẽ là Chuỗi cho đến khi đạt được lần xuất hiện đầu tiên của 'e' Thay đổi số đếm thành 2 cho cùng một ký tự 'e' SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;01 Bây giờ, chúng ta có thể thấy, Chuỗi con cho đến lần xuất hiện thứ hai của ký tự 'e' được trả về Lấy một ví dụ khác để hiểu rằng CHỈ SỐ SUBSTRING có phân biệt chữ hoa chữ thường. Hãy thử với chữ 't' thay vì 'T' SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;02 Tìm kiếm một chuỗiChúng ta có thể sử dụng hàm SUBSTRING INDEX để tìm kiếm một chuỗi thay vì một ký tự. Hãy tìm kiếm từ 'Thử nghiệm' SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;03 Tìm kiếm một chuỗi không tồn tạiSử dụng SUBSTRING INDEX với Chuỗi không tồn tại SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;04 Đầu ra có thể hơi bất ngờ ở đây. Nhưng vì Công cụ MySQL không thể tìm thấy kết quả khớp được yêu cầu, nên nó sẽ trả về toàn bộ chuỗi dưới dạng đầu ra Tìm kiếm ký tự hoặc chuỗi theo thứ tự đảo ngượcTương tự như hàm SUBSTRING, hàm SUBSTRING INDEX cũng cho phép số lượng được đề cập là số âm. Điều này có nghĩa là, thay vì duyệt từ trái sang phải, MySQL Engine sẽ cố gắng tìm kết quả khớp từ phải sang trái Hiểu điều này với sự giúp đỡ của một số ví dụ SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;05 Trong ví dụ trên, bạn có thể thấy dấu phân cách là ‘T’ trong khi số đếm là -1. Vì vậy, đầu ra sẽ là Chuỗi con từ bên phải cho đến khi nhận được kết quả khớp đầu tiên cho chữ 'T' Các Ứng Dụng Của Hàm SUBSTRING MySQLChúng tôi thường sử dụng các hàm Chuỗi MySQL trong khi truy vấn dữ liệu từ 1 hoặc nhiều bảng. Nó có thể được sử dụng để phân chia các giá trị trong một cột hoặc chỉ để hiển thị các giá trị cần thiết theo nhu cầu Ví dụ. Giả sử rằng chúng tôi có một bảng chi tiết nhân viên bao gồm id, tên và địa chỉ Và cột địa chỉ có định dạng – {House No},{Street Name} SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;06 Sử dụng hàm MySQL SUBSTRING để trích xuất số nhà từ cột địa chỉ như hình bên dưới SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;07 đầu ra namehouse_noaddressageAkash Malhotra2222,Defense Colony24Steve Wilson12/412/4,Wilson Street28Monica Singh190190,Smith Lane32 Trong truy vấn trên, bạn có thể thấy rằng chúng tôi đã sử dụng hàm SUBSTRING_INDEX để lấy Số nhà từ cột địa chỉ và chúng tôi đã sử dụng ',' làm dấu phân cách Tương tự như vậy, có thể có nhiều ứng dụng mà chúng tôi muốn trích xuất Chuỗi để tìm nạp một số thông tin có ý nghĩa từ Đầu vào chuỗi lớn hơn hoặc giá trị cột Các câu hỏi thường gặpQ #1) Hàm MySQL nào trả về vị trí xuất hiện đầu tiên của SUSTRING trong chuỗi? Câu trả lời. MySQL cung cấp 2 hàm để trả về hoặc trích xuất một SUBSTRING từ một giá trị Chuỗi hoặc cột đã cho
SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;08
SELECT SUBSTR(address, 1, LENGTH(address) -4) AS substring FROM web_address;09 Q #2) SUBSTRING_INDEX trong MySQL là gì? Câu trả lời. Hàm SUBSTRING_INDEX là một biến thể của hàm SUBSTRING. Mặc dù ở hàm SUBSTRING bình thường, bạn phải đề cập đến chỉ mục dưới dạng một số trong Chuỗi đầu vào, nhưng đối với hàm SUBSTRING_INDEX, bạn có thể đề cập đến một ký tự hoặc một chuỗi con nhỏ hơn cần tìm kiếm Đề nghị đọc =>> Hướng dẫn MySQL COUNT Phần kết luậnTrong hướng dẫn này, chúng ta đã tìm hiểu về các hàm SUBSTRING và SUBSTRING_INDEX của MySQL. Cả hai hàm đều trích xuất một Chuỗi con đối với chuỗi đầu vào đã cho nhưng hoạt động theo một cách hơi khác SUBSTRING mong muốn chỉ mục là số thực, trong khi SUBSTRING_INDEX có thể có dấu phân cách được chỉ định làm giá trị Ký tự hoặc Chuỗi, sau đó Công cụ MySQL có thể trích xuất theo Chuỗi hoặc Ký tự phù hợp được yêu cầu Cả hai hàm này phần lớn được sử dụng khi một cột có nhiều mẩu thông tin có thể được trích xuất thành các cột con bằng cách sử dụng logic trích xuất chuỗi dựa trên các yêu cầu phù hợp Substr() trong MySQL là gì?Hàm SUBSTR() trích xuất một chuỗi con từ một chuỗi (bắt đầu từ bất kỳ vị trí nào) . Ghi chú. Các hàm SUBSTR() và MID() bằng với hàm SUBSTRING().
Các hàm Substr() Instr() là gì?Các hàm substr cho phép bạn trích xuất một chuỗi con từ một chuỗi. Hàm instr trả về vị trí của một chuỗi con trong một chuỗi .
Sự khác biệt giữa Substr và chuỗi con trong MySQL là gì?Tuy nhiên, có một chút khác biệt giữa các phương thức subst() và substring(). Cả hai hàm đều nhận hai tham số, nhưng substr() lấy độ dài của chuỗi con được trả về, trong khi chuỗi con lấy chỉ số kết thúc (không bao gồm) cho chuỗi con .
Làm cách nào để lấy 3 ký tự cuối cùng từ một chuỗi trong MySQL?CHỌN *TỪ ĐẶT HÀNG TỪ yourTableName THEO QUYỀN(yourColumnName,3) yourSortingOrder ; . Đây là truy vấn để đặt hàng theo 3 ký tự cuối cùng. Trường hợp 1 - Nhận kết quả theo thứ tự tăng dần. |