Hướng dẫn can we store comma separated values in mysql? - chúng ta có thể lưu trữ các giá trị được phân tách bằng dấu phẩy trong mysql không?

Tôi cần lưu trữ một chuỗi các giá trị phân tách dấu phẩy.

'1,23,47' or '1' or '' (null)

Loại dữ liệu nào sẽ hoạt động tốt nhất cho các giá trị phân tách bằng dấu phẩy?

Lưu ý: Tôi chỉ hỏi loại dữ liệu nào sẽ phù hợp với kịch bản này. I am only asking which data type would be appropriate for this scenario.

Đã hỏi ngày 17 tháng 12 năm 2009 lúc 4:20Dec 17, 2009 at 4:20

Hướng dẫn can we store comma separated values in mysql? - chúng ta có thể lưu trữ các giá trị được phân tách bằng dấu phẩy trong mysql không?

3

Tùy thuộc vào mức độ lớn của chuỗi bạn mong đợi thế giới xác định kích thước của Varchar. Nếu bạn không biết chuỗi sẽ có thể sử dụng loại dữ liệu văn bản bao lâu.

Đã trả lời ngày 17 tháng 12 năm 2009 lúc 4:24Dec 17, 2009 at 4:24

Luke101Luke101Luke101

60,9K83 Huy hiệu vàng225 Huy hiệu bạc354 Huy hiệu đồng83 gold badges225 silver badges354 bronze badges

Câu trả lời theo nghĩa đen: Một loại khác nhau

Câu trả lời tốt hơn: Đừng lưu trữ danh sách các giá trị phân tách dấu phẩy. Lưu trữ một giá trị cho mỗi hàng và sử dụng truy vấn chọn với nhóm_concat để tạo giá trị phân tách dấu phẩy khi bạn truy cập cơ sở dữ liệu.

Đã trả lời ngày 17 tháng 12 năm 2009 lúc 4:21Dec 17, 2009 at 4:21

Jason Sjason sJason S

181K161 Huy hiệu vàng588 Huy hiệu bạc947 Huy hiệu đồng161 gold badges588 silver badges947 bronze badges

3

Varchar, nó có thể lưu trữ bất cứ điều gì.

Văn bản nếu bạn nghĩ rằng nó sẽ dài.

Đã trả lời ngày 17 tháng 12 năm 2009 lúc 4:22Dec 17, 2009 at 4:22

Nếu bạn sẽ không bao giờ cần truy vấn các mục phụ cụ thể trong danh sách các giá trị, thì hãy sử dụng Varchar. Tuy nhiên, nếu bạn cần truy vấn các giá trị, tôi thực sự khuyên bạn nên xem xét một thiết kế cơ sở dữ liệu khác, chẳng hạn như bảng giá trị trong đó mỗi hàng chứa một khóa nối với bảng chính và một giá trị duy nhất.

Đã trả lời ngày 17 tháng 12 năm 2009 lúc 4:24Dec 17, 2009 at 4:24

60,9K83 Huy hiệu vàng225 Huy hiệu bạc354 Huy hiệu đồngJim Garrison

Câu trả lời theo nghĩa đen: Một loại khác nhau20 gold badges153 silver badges189 bronze badges

Câu trả lời tốt hơn: Đừng lưu trữ danh sách các giá trị phân tách dấu phẩy. Lưu trữ một giá trị cho mỗi hàng và sử dụng truy vấn chọn với nhóm_concat để tạo giá trị phân tách dấu phẩy khi bạn truy cập cơ sở dữ liệu.

comment varchar(128)

Hướng dẫn can we store comma separated values in mysql? - chúng ta có thể lưu trữ các giá trị được phân tách bằng dấu phẩy trong mysql không?

Đã trả lời ngày 17 tháng 12 năm 2009 lúc 4:22Dec 17, 2009 at 4:22

Blog

Tách các giá trị phân tách bằng dấu phẩy trong MySQL

Bởi Đội Sisense

Xem Sisense trong hành động

Đăng ký dùng thử miễn phí để xây dựng trải nghiệm trực quan, tương tác.

Bằng cách kiểm tra hộp này, tôi đồng ý rằng chi tiết liên lạc của tôi có thể được sử dụng bởi Sisense và các chi nhánh của nó để gửi cho tôi tin tức về các sản phẩm và dịch vụ của Sisense và các thông tin tiếp thị khác.


Bằng cách nhấp vào nút Gửi bên dưới, tôi xác nhận rằng tôi đã đọc và hiểu chính sách bảo mật và điều khoản dịch vụ của Sisense.

Hướng dẫn can we store comma separated values in mysql? - chúng ta có thể lưu trữ các giá trị được phân tách bằng dấu phẩy trong mysql không?

Nhận mới nhất trong phân tích ngay trong hộp thư đến của bạn.

Bằng cách kiểm tra hộp này, tôi đồng ý rằng chi tiết liên lạc của tôi có thể được sử dụng bởi Sisense và các chi nhánh của nó để gửi cho tôi tin tức về các sản phẩm và dịch vụ của Sisense và các thông tin tiếp thị khác.


Bằng cách nhấp vào nút Gửi bên dưới, tôi xác nhận rằng tôi đã đọc và hiểu chính sách bảo mật và điều khoản dịch vụ của Sisense.

Hướng dẫn can we store comma separated values in mysql? - chúng ta có thể lưu trữ các giá trị được phân tách bằng dấu phẩy trong mysql không?

Tôi biết câu hỏi này có lẽ đã được hỏi nhiều lần trước đây, nhưng câu hỏi của tôi là cụ thể cho tình huống của tôi.

Tôi đang thực hiện một dịch vụ vi mô thông báo. Nó có một bảng email và bảng queue. Dịch vụ được tiếp xúc bằng API REST. Mỗi email có thể có nhiều địa chỉ to và địa chỉ cc. Hàng đợi có ID email. Khi email được gửi, hàng được xóa khỏi hàng đợi.

Tại thời điểm này, không có yêu cầu nào để truy vấn ai đã gửi email nào hoặc liệu một email cho một người dùng cụ thể có địa chỉ email đã cho đã được gửi. Có nhiều ý tưởng về cách lưu trữ địa chỉ email TO/CC.no requirement to query on who sent what emails or whether a email for a particular user with a given email address has been sent. There are multiple ideas on how to/cc email addresses can be stored.

  1. Lưu trữ chúng ở định dạng JSON trong trường địa chỉ của bảng email:
    {
         toList: ['h@h','g@g'],
         ccList: ['a@b','c@d']
    }

Tôi đã xem xét sử dụng kiểu dữ liệu JSON của MySQL 5.7, nhưng nó không được hỗ trợ trong H2DB mà chúng tôi sử dụng cho các thử nghiệm tích hợp.

  1. Lưu trữ chúng dưới dạng dấu phẩy được phân tách các giá trị trong các cột toList, ccList trong bảng email.

  2. Lưu trữ chúng trong một bảng quan hệ, chẳng hạn như email,

    comment varchar(128)
    
    2,
    comment varchar(128)
    
    3 trong đó bảng
    comment varchar(128)
    
    2 sẽ chứa
    comment varchar(128)
    
    5, địa chỉ email và
    comment varchar(128)
    
    6. Điều này dẫn đến một số hồ sơ trong bảng
    comment varchar(128)
    
    2 và cũng nhiều lần tham gia.

Điều gì sẽ là giải pháp tốt nhất để thực hiện trong trường hợp này? Tôi thường chống lại vi phạm FNF và tôi không chắc ý nghĩa của việc có quá nhiều hồ sơ trong bảng

comment varchar(128)
2 như hồ sơ cho mỗi email được gửi đến, ví dụ, 2 đến 3 người. Không có bảng
comment varchar(128)
9 trong hệ thống này, nếu điều đó quan trọng.

Điều khoản với các giá trị phân tách bằng dấu phẩy trong MySQL?

Để thực hiện mệnh đề WHERE trên chuỗi/giá trị được phân tách bằng dấu phẩy, MySQL có hàm sẵn có tên là Find_in_set sẽ tìm kiếm các giá trị trong các giá trị được phân tách bằng dấu phẩy.Bạn cũng có thể sử dụng trong toán tử để đạt được điều tương tự nhưng có một số hạn chế với trong nhà điều hành mà tôi sẽ hiển thị bên dưới.MySQL has an inbuilt function called FIND_IN_SET which will search for values within a comma separated values. You can also use IN operator to achieve the same but there are some limitations with IN operator which I will show below.

Làm thế nào phân tách dấu phẩy tách các giá trị thành các cột trong MySQL?

Cách chia văn bản phân tách dấu phẩy (danh sách ID) trong quy trình lưu trữ MySQL để sử dụng kết quả trong câu lệnh SQL "in".Chọn * từ bảng trong đó bảng.id in (splitStringFunction (CommaseParatedData, ','));SQL ...
Ok, bạn có thể cụ thể hơn không?- Peter Stegnar.....
Theo liên kết, chỉ có câu trả lời không phải là thực hành tốt.....
Liên kết đầu tiên bị hỏng ..