Tôi có bảng di sản mysql chứa một mã định danh ứng dụng khách và một danh sách các mục, sau này là chuỗi được phân cách bằng dấu phẩy. Ví dụ. "xyz001", "foo,bar,baz"
. Đây là công cụ kế thừa và người dùng khẳng định có thể chỉnh sửa chuỗi phân cách bằng dấu phẩy.Chuyển chuỗi ký tự phân tách thành nhiều giá trị trong mysql
Hiện tại, họ có yêu cầu cho bảng báo cáo với các báo cáo ở trên được chia thành các hàng riêng biệt, ví dụ:
"xyz001", "foo"
"xyz001", "bar"
"xyz001", "baz"
Phá vỡ chuỗi thành chuỗi con có thể dễ dàng thực hiện được và tôi đã viết một thủ tục để thực hiện điều này bằng cách tạo ra một bảng riêng biệt, nhưng điều đó đòi hỏi phải kích hoạt để đối phó với xóa, cập nhật và chèn. Truy vấn này hiếm khi được yêu cầu (giả sử mỗi tháng một lần) nhưng phải được cập nhật hoàn toàn khi nó được chạy, ví dụ: chi phí của các trigger không được đảm bảo và các nhiệm vụ được lập biểu để tạo bảng có thể không đủ kịp thời.
Có cách nào để viết một hàm trả lại bảng hoặc tập hợp để tôi có thể tham gia mã định danh với các mục riêng lẻ theo yêu cầu không?
Điều này làm việc một điều trị, không thể nói tôi hoàn toàn hiểu nó nhưng tôi chắc chắn sẽ nghiên cứu nó cho đến khi tôi làm. Cảm ơn nhiều. – epo
Cảnh báo: mã trên có chứa lỗi. Nó không trả lại phần tử đầu tiên trong danh sách (ví dụ: "foo"). Mã dưới đây từ Thomas không chứa lỗi này. – GregW