Làm cách nào để phân tách các giá trị được phân tách bằng dấu phẩy trong mysql?
Đối với điều này, bạn có thể sử dụng substring_index() trong MySQL. Hãy để chúng tôi tạo một bảng - Show
Thí dụmysql> create table demo79 -> ( -> fullname varchar(50) -> ); Query OK, 0 rows affected (0.64 Chèn một số bản ghi vào bảng với sự trợ giúp của lệnh chèn - Thí dụmysql> insert into demo79 values("John,Smith"); Query OK, 1 row affected (0.09 mysql> insert into demo79 values("David,Miller"); Query OK, 1 row affected (0.11 mysql> insert into demo79 values("Chris,Brown"); Query OK, 1 row affected (0.07 Hiển thị các bản ghi từ bảng bằng câu lệnh select - Thí dụmysql> select *from demo79; Điều này sẽ tạo ra đầu ra sau - đầu ra+--------------+ | fullname | Sau đây là truy vấn để tách một cột thành 2 cột bằng cách sử dụng dấu phẩy làm dấu phân tách - Thí dụmysql> select -> fullname, -> substring_index(fullname, ',', 1) First_Name, -> substring_index(fullname, ',', -1) Last_Name -> from demo79; Điều này sẽ tạo ra đầu ra sau - đầu ra
Tôi đã phân tích cú pháp dữ liệu có dấu gạch nối trong đó. Ví dụ dưới đây sử dụng một chuỗi văn bản cố định để minh họa, chỉ cần thay đổi các tham chiếu thành các tên cột có liên quan trong bảng. Tôi đã chơi lâu năm với một cách để đảm bảo nó hoạt động trên các mã có số lượng thành phần khác nhau và cuối cùng đã quyết định thêm mệnh đề where. Hầu hết dữ liệu bạn đang cố phân tích sẽ có một số cột cố định Đáng ngạc nhiên là MySQL không có chức năng dành riêng cho hoạt động này trái ngược với split_part trong PostgreSQL. May mắn thay, nó có chức năng thực hiện hầu hết những gì chúng ta cần Từ 0 Định nghĩa
Giải phápGiả sử chúng tôi muốn tìm tất cả nhân viên làm việc ở một tiểu bang nhất định (ví dụ: 2), đây là trường thứ tư trong cột chứa địa chỉ dưới dạng các giá trị được phân tách bằng dấu phẩyVới chức năng 3, chúng tôi sẽ có thể trích xuất mọi thứ cho đến cột thứ tư chứa trạng thái
Bây giờ chúng ta biết rằng trạng thái sẽ luôn là trường cuối cùng trong giá trị kết quả. Vì hàm 1 cho phép sử dụng các giá trị âm để trích xuất các trường đếm từ bên phải nên chúng tôi sẽ sử dụng khả năng này để trích xuất trường ngoài cùng bên phải có chứa tên viết tắt của tiểu bang
Giải pháp cuối cùng để tất cả nhân viên làm việc ở một trạng thái nhất định được hiển thị bên dưới
Hãy cẩn thậnMột điều cần lưu ý về 1 là hàm trả về toàn bộ chuỗi nếu trường được yêu cầu không tồn tạiVí dụ, 6 trả về địa chỉ đầy đủ
Sau đó, cố gắng trích xuất trường thứ sáu bằng 7 sẽ cung cấp cho chúng tôi mã zip (trường thứ năm) sai
Một cách giải quyết khả thi cho vấn đề này là kiểm tra xem số lượng trường có lớn hơn hoặc bằng chỉ mục được yêu cầu hay không và sau đó nhập mã ở trên hoặc trả về chuỗi trống nếu chỉ mục trường không hợp lệ
sử dụng có thểTrong hầu hết các trường hợp, tốt hơn là sử dụng một bảng tra cứu riêng biệt hoặc một cột cho từng trường thay vì lưu trữ dữ liệu dưới dạng các giá trị được phân tách bằng dấu phẩy để tra cứu sau này Tuy nhiên, có thể có những trường hợp hiếm hoi mà thủ thuật trên có thể hữu ích. Ví dụ: gần đây tôi cần trả về một danh sách các giá trị từ hàm do người dùng xác định và cách duy nhất để làm điều đó là trả về một chuỗi chứa các giá trị được phân tách bằng dấu phẩy. Cuối cùng tôi đã sử dụng 1 để sắp xếp kết quả theo một trong các trườngTìm kiếm trong cột chứa các giá trị được phân tách bằng dấu phẩyMySQL có một chức năng chuyên dụng trả về chỉ mục trường nếu giá trị được tìm thấy trong một chuỗi chứa các giá trị được phân tách bằng dấu phẩy Ví dụ: câu lệnh sau trả về chỉ số dựa trên một giá trị 9 trong chuỗi 0
Làm cách nào để phân tách các giá trị được phân tách bằng dấu phẩy trong MySQL?Tách các giá trị được phân tách bằng dấu phẩy trong MySQL . Lập bảng số Chọn Từng Mục Trong Danh Sách Để tất cả chúng cùng nhau Làm cách nào để tách chuỗi bằng dấu phẩy trong MySQL?MySQL có một chức năng chuyên dụng FIND_IN_SET() trả về chỉ mục trường nếu giá trị được tìm thấy trong một chuỗi chứa các giá trị được phân tách bằng dấu phẩy . Ví dụ: câu lệnh sau trả về chỉ mục dựa trên một giá trị C trong chuỗi A,B,C,D. Nếu không tìm thấy giá trị đã cho, hàm FIND_IN_SET() trả về 0.
Làm cách nào để tách các giá trị trong MySQL?Trong MySQL, chúng tôi sử dụng SUBSTRING_INDEX() để tách chuỗi . Nó thường bao gồm ba đối số tôi. e. , chuỗi, dấu phân cách và vị trí. Giá trị chuỗi sẽ được phân chia dựa trên vị trí.
Cách phân tách dữ liệu được phân tách bằng dấu phẩy trong SQL?B) Sử dụng hàm STRING_SPLIT() để tách một chuỗi được phân tách bằng dấu phẩy trong một cột. Đôi khi, các bảng cơ sở dữ liệu không được chuẩn hóa. Một ví dụ điển hình của điều này là khi một cột có thể lưu trữ nhiều giá trị được phân tách bằng dấu phẩy (,). STRING_SPLIT() có thể giúp chuẩn hóa dữ liệu bằng cách tách các cột đa giá trị này. |