Chúng tôi có thể lưu trữ các Giá trị được Phân tách bằng Dấu phẩy trong mysql không?
Trong bài đăng trên blog này, chúng ta sẽ tìm hiểu cách nhóm các bộ giá trị thành một danh sách được phân tách bằng dấu phẩy, cho mỗi nhóm, bằng cách sử dụng hàm GROUP_CONCAT() của MySQL. Tiếp tục đọc để biết thêm thông tin… Show Khám phá các bài báo cao cấp, hướng dẫn chuyên sâu, video hướng dẫn, v.v. bằng cách tham gia tư cách thành viên “MySQL Learning Tier”. Bạn có quyền truy cập vào nội dung độc quyền chưa được xuất bản ở bất kỳ nơi nào khác với tư cách thành viên này. Với nội dung mới được bổ sung thường xuyên, hãy tiếp tục học MySQL ở mọi cấp độ Học MySQL Thúc đẩyNếu bạn thích nội dung được viết ở đây, bằng mọi cách, hãy chia sẻ blog này và (các) bài đăng yêu thích của bạn với những người khác, những người cũng có thể được hưởng lợi hoặc thích nội dung đó. Vì cà phê là thức uống yêu thích của tôi nên bạn thậm chí có thể mua cho tôi một ly nếu muốn. Nhận các bài báo phù hợp với Refind được gửi mỗi ngày trong hộp thư đến của bạn. Refind là một phần trong thói quen đọc hàng ngày của tôi. Biến nó thành một phần của bạn bằng cách sử dụng liên kết giới thiệu của tôi. Bạn không phải trả thêm phí, tôi sẽ đủ điều kiện đăng ký trả phí với nhiều lượt đăng ký hơn từ liên kết của tôi. “Bản chất của web, mỗi sáng trong hộp thư đến của bạn. Đăng ký miễn phí“ Bản tin dành cho các nhà phát triển PHP và MySQLNhận bản sao sách điện tử của tôi, “10 mẹo MySQL cho mọi người”, hoàn toàn miễn phí khi bạn đăng ký nhận bản tin của OpenLampTech. Tôi đang sử dụng bảng 'group_member' hư cấu này cho dữ liệu truy vấn và ví dụ. Có 4 nhóm riêng biệt. 100, 200, 300 và 400 tương ứng Để đặt từng 'tên_thành_viên' theo thứ tự abc trong nhóm tương ứng của nó, chúng ta có thể sử dụng hàm GROUP_CONCAT() và GROUP THEO cột 'group_num', chỉ định dấu phẩy làm giá trị SEPARATOR Bạn có phải là thành viên của Medium không? . Không phải là một thành viên? . Sử dụng liên kết đăng ký của tôi (tôi sẽ nhận được hoa hồng mà bạn không phải trả thêm phí) và tham gia. Tôi thực sự thích đọc tất cả những nội dung tuyệt vời ở đó và tôi biết bạn cũng vậy Tôi đã bao gồm một đoạn video ngắn về hoạt động của đoạn mã trên để bạn có thể thấy nó hoạt động như thế nào Thể hiện sự ủng hộ và đánh giá cao của bạn đối với nội dung của tôi bằng cách ném bất kỳ tiền lẻ dự phòng nào của bạn vào Lọ đựng tiền boa của tôi Lọ đựng tiền boa Cảm ơn bạn đã đọc bài viết này. Hãy chia sẻ nó với người khác cũng sẽ thích nó Josh Otwell có niềm đam mê phát triển với tư cách là Nhà phát triển PHP, chuyên gia SQL và blogger/nhà văn kỹ thuật từ chối trách nhiệm. Phần lớn các ví dụ trong bài đăng này, được thực hiện trong môi trường máy trạm học tập/phát triển cá nhân và không nên được coi là chất lượng sản xuất hoặc sẵn sàng. Mục tiêu và nhu cầu cụ thể của bạn có thể thay đổi. Như mọi khi, chỉ vì bạn có thể làm điều gì đó không có nghĩa là bạn nên làm. Ý kiến của tôi là của riêng tôi Nhiều cách khác tôi có thể giúp
Tiết lộ. Một số dịch vụ và liên kết sản phẩm của bài đăng trên blog này là các liên kết liên kết. Bạn không phải trả thêm phí, nếu bạn mua hàng bằng cách nhấp qua một trong số chúng, tôi sẽ nhận được hoa hồng Đá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ó hàm SUBSTRING_INDEX() thực hiện hầu hết những gì chúng ta cần Từ tài liệu chính thức 0 Các định nghĩa
Dung dịchGiả 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 chữ viết tắt của tiểu bang________số 8Giả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 đủ 2Sau đó, 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 4Mộ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ệ 5sử 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 hàm 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ị 9 trong chuỗi 0
Chúng ta có thể lưu dấu phẩy khôngCó thể thực hiện nhiều đầu vào cho cùng một tham số bằng các giá trị được phân tách bằng dấu phẩy trong tham số đầu vào của thủ tục được lưu trữ hoặc đầu vào cho hàm dạng bảng và được sử dụng với bảng trong một .
Cách sử dụng dấu phẩyTrong MySQL, bạn có thể trả về kết quả truy vấn của mình dưới dạng danh sách được phân tách bằng dấu phẩy bằng cách sử dụng hàm GROUP_CONCAT() . Hàm GROUP_CONCAT() được xây dựng riêng cho mục đích nối kết quả của truy vấn được đặt thành một danh sách được phân tách bằng dấu phẩy hoặc dấu phân cách do bạn chọn.
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 chèn dấu phẩyThử cái này. Sử dụng hàm implode() của PHP. Nó sẽ chuyển đổi mảng thành chuỗi với dấu tách được xác định trong hàm. $NewsIndustryID_str =implode(',',$array['NewsIndustryID']); . hoặc bất kỳ |