Tách chuỗi mysql
Nguyên bản được gửi bởi Admin
Bạn thử truy vấn vấn đề này xem
Đầu vào. Cột A [[100002],[5]] [[100002,100002],[5,8]] [[100002,100003],[6,8]] [[100002,100002,100002],[5,8,9]] Đầu ra. Mong nhận được sự giúp đỡ - - - Nội dung đã được cập nhật ngày 27-06-2014 lúc 11. 26 AM - - - Mình đã viết câu SQL như bên dưới để ra kết quả đúng như yêu cầu, nhưng còn phức tạp quá, ai đơn giản hóa được nó, giúp mình với. ( Select Substring(C.A,1,Length(C.A)-1) AS 'RESULT' FROM (Select substring_index(B.A,'[',2) as A FROM (Select Substring(Zh.mconfig,2,Length(Zh.mconfig)-2) AS A FROM anheisg.tb_zhangjie AS Zh) AS B) AS C Để tách một chuỗi trong MySQL, bạn cần sử dụng hàm 5 do MySQL cung cấpHàm 6 cho phép bạn trích xuất một phần của chuỗi hoàn chỉnhCú pháp của hàm như sau
Hàm yêu cầu bạn truyền 3 tham số như mô tả bên dưới
Hãy xem một ví dụ về hoạt động của 6Giả sử bạn có một chuỗi địa chỉ như sau
Giả sử bạn muốn tách địa chỉ trên dựa trên sự xuất hiện của ký hiệu xuống dòng 8Đây là cách bạn làm điều đó với hàm 6________số 8 Truy vấn trên sẽ trả về tập kết quả sau
Hàm 6 quét nguồn chuỗi để tìm chuỗi dấu phân cách, sau đó trích xuất chuỗi dựa trên số lần xuất hiện của dấu phân cách mà bạn đã chuyển làm tham số thứ baKhi bạn truyền một số âm, thì hàm sẽ duyệt chuỗi từ cuối thay vì từ đầu chuỗi Hãy xem một ví dụ khác với dữ liệu bảng MySQL. Giả sử bạn có một bảng 1 với dữ liệu sau 2Bạn có thể chia các chuỗi trong cột 2 ở trên thành 3 và 4 bằng cách sử dụng hàm 5 như sau 7Truy vấn SQL ở trên sẽ trả về tập kết quả sau 8Hàm 6 có thể được gọi là tham số đầu tiên của một lệnh gọi 6 khác để bạn có thể trích xuất một phần của chuỗi nằm ở giữa các dấu phân cáchGiả sử học sinh của bạn có tên đệm như sau 1Lúc đầu, có vẻ như việc gọi 6 và chuyển số 9 làm tham số thứ ba có thể hiệu quảNhưng truyền số 9 thì hàm sẽ lấy ra cả họ và tên đệm như hình bên dưới 5Để chỉ trích xuất tên đệm, bạn cần gọi hàm 5 hai lần, với lần gọi thứ hai là tham số đầu tiên của hàmLệnh gọi hàm bên trong phải giống như trên, trong khi lệnh gọi bên ngoài sẽ trích xuất chuỗi bằng cách sử dụng 2 làm tham số thứ ba 8Bây giờ tên đệm sẽ được trích xuất chính xác như hình bên dưới 0Truy vấn SQL hoàn chỉnh bên dưới 1Sẽ tạo ra tập kết quả sau 2Bây giờ bạn đã học cách sử dụng hàm 5 để tách một chuỗiTiếp theo, hãy xem cách sử dụng thủ tục được lưu trữ để tách một chuỗi bằng một dấu phân cách cụ thể Chuỗi phân tách MySQL với một thủ tục được lưu trữBạn cũng có thể tách một chuỗi trong MySQL bằng cách sử dụng thủ tục được lưu trữ Bạn cần tạo quy trình sau trong cơ sở dữ liệu của mình 3Thủ tục 4 ở trên chấp nhận hai đối số
Đầu tiên, thủ tục sẽ tạo một bảng tạm thời để lưu trữ từng phần của chuỗi cho đến vị trí dấu phân cách. Sau đó, một vòng lặp 7 sẽ được thực hiện miễn là tìm thấy 6 trong 5Vòng lặp sẽ thêm các đoạn của chuỗi vào bảng 20Sau khi tất cả các phần của chuỗi được thêm vào bảng, truy vấn 21 sẽ truy xuất các hàng cho chuỗiDưới đây là một số kết quả của việc chạy thủ tục được lưu trữ 4Và đó là cách bạn có thể tách chuỗi bằng thủ tục lưu trữ MySQL Nếu bạn đang phát triển một dự án ứng dụng web, tốt hơn hết là để ngôn ngữ lập trình xử lý phần phụ trợ của ứng dụng của bạn phân tách chuỗi thay vì sử dụng các truy vấn MySQL Ví dụ, JavaScript có phương thức 22 cho phép bạn tách một 23 thành một 24công thức mã JavaScript. tách chuỗi thành mảng Các ngôn ngữ như JavaScript và PHP có nhiều hàm có thể giúp bạn thao tác các giá trị chuỗi với độ chính xác cao hơn |