Hướng dẫn how do i select multiple rows in a comma separated list in mysql? - làm cách nào để chọn nhiều hàng trong danh sách được phân tách bằng dấu phẩy trong mysql?

Hầu hết các RDBMS chính có chức năng cho phép chúng tôi trả về kết quả truy vấn của mình dưới dạng danh sách phân tách dấu phẩy.

Đó là, chúng ta có thể sử dụng một hàm như vậy để chuyển đổi từng hàng thành một mục danh sách riêng biệt, trong danh sách phân tách dấu phẩy.

Dưới đây là những ví dụ về cách đạt được điều này trong một số RDBMS phổ biến hơn.

Mysql

MySQL có chức năng

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
5 cho phép chúng tôi xuất kết quả truy vấn của mình vào danh sách phân tách dấu phẩy:

SELECT GROUP_CONCAT[PetName] 
FROM Pets;

Result:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow

Chúng ta cũng có thể làm những việc như, xóa các giá trị trùng lặp [với mệnh đề

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
6], chỉ định một đơn đặt hàng cho kết quả [với mệnh đề
SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
7] và chỉ định một dấu phân cách khác.

Xem hàm

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
5 trong MySQL để biết thêm ví dụ.

Cơ sở dữ liệu Oracle

Cơ sở dữ liệu Oracle có chức năng

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
9:

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';

Result:

Hunold, Ernst, Austin, Pataballa, Lorentz    

Giống như MySQL, cơ sở dữ liệu Oracle cũng cho phép chúng tôi xóa các giá trị trùng lặp, chỉ định một đơn đặt hàng cho kết quả, chỉ định một dấu phân cách khác, v.v.

Xem chức năng

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
9 trong Oracle để biết thêm ví dụ.

Máy chủ SQL

SQL Server có chức năng

Hunold, Ernst, Austin, Pataballa, Lorentz    
1 để trả về kết quả của chúng tôi trong danh sách phân tách dấu phẩy:

SELECT STRING_AGG[Genre, ','] AS Result FROM Genres

Result:

Rock,Jazz,Country,Pop,Blues,Hip Hop,Rap,Punk

Chúng tôi cũng có thể xóa các giá trị trùng lặp, chỉ định một đơn đặt hàng cho kết quả, thay đổi dấu phân cách, v.v.

Xem cách trả về kết quả truy vấn dưới dạng danh sách phân tách dấu phẩy trong SQL Server để biết thêm các ví dụ.

Mariadb

Giống như MySQL, Mariadb cũng có chức năng

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
5:

SELECT GROUP_CONCAT[PetName] 
FROM Pets;

Result:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow

Giống như hàm MySQL, cùng tên, chúng ta cũng có thể làm những việc như, xóa các giá trị trùng lặp [với mệnh đề

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
6], chỉ định một thứ tự cho kết quả [với mệnh đề
SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
7], thay đổi dấu phân cách, v.v.

Tuy nhiên, một điều mà Mariadb có trên MySQL là mệnh đề

Hunold, Ernst, Austin, Pataballa, Lorentz    
5, cung cấp cho chúng tôi khả năng giới hạn số lượng kết quả trong danh sách.

Xem Mariadb

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
5 để biết thêm ví dụ.

Postgresql

Postgres có chức năng

Hunold, Ernst, Austin, Pataballa, Lorentz    
1:

SELECT STRING_AGG[PetName, ','] 
FROM Pets;

Result:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow

Chúng ta cũng có thể xóa các giá trị trùng lặp [với mệnh đề

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
6], chỉ định một đơn đặt hàng cho kết quả [với mệnh đề
SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
7], thay đổi dấu phân cách, v.v.

Xem hàm

Hunold, Ernst, Austin, Pataballa, Lorentz    
1 trong PostgreSQL để biết thêm ví dụ.

Sqlite

Trong SQLite, chúng tôi có thể sử dụng chức năng

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
5 để chuyển đổi kết quả truy vấn của chúng tôi thành danh sách phân tách dấu phẩy:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
0

Result:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
1

Xem cách

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
5 hoạt động trong sqlite để biết thêm ví dụ.

Nhiều cột

Tất cả các ví dụ trên đều sử dụng một cột duy nhất cho danh sách. Chúng tôi cũng có thể kết hợp nhiều cột để tạo một danh sách bao gồm nhiều cột.

Giả sử chúng ta có một bảng với dữ liệu sau:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
2

Result:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
3

Trong SQL Server, chúng ta có thể thực hiện các phần sau để xuất cả hai cột trong một hàng duy nhất:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
4

Result:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
5

Tôi có hai bàn: Dish và Dish_has_dishes. Bàn bát đĩa có tất cả các món ăn và bàn "Dish_has_dishes" có mối quan hệ một-nhiều với bảng "Dish". I E. Một món ăn có thể có nhiều món ăn. Ví dụ

MÓN ĂN : :

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
6

Dish_has_dishes: :

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
7

Ở đây, cả bữa ăn_id và Dish_id đều là ID từ bàn bát đĩa. Bây giờ tôi muốn một định dạng như thế này:

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
8

Đó là dấu phẩy phân tách ID Dish và tên cho mỗi bữa ăn. Làm thế nào để làm điều đó?

Để kết hợp nhiều hàng vào danh sách được phân định dấu phẩy, hãy sử dụng phương thức Group_concat []. Trước tiên chúng ta hãy tạo một bảng -

Fluffy,Fetch,Scratch,Wag,Tweet,Fluffy,Bark,Meow
9

Chèn một số bản ghi trong bảng bằng lệnh chèn -

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
0

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn -

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
1

Đầu ra

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
2

Sau đây là truy vấn để kết hợp nhiều hàng vào danh sách được phân định dấu phẩy trong MySQL -

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
3

Đầu ra

SELECT LISTAGG[last_name, ', ']
FROM employees
WHERE job_id = 'IT_PROG';
4

Sau đây là truy vấn để kết hợp nhiều hàng vào danh sách được phân định dấu phẩy trong MySQL -

  • Cập nhật vào ngày 30 tháng 3 năm 2019 22:30:26
  • Câu hỏi và câu trả lời liên quan
  • MySQL Chọn các hàng riêng biệt vào cột Danh sách được phân định dấu phẩy?
  • Làm thế nào để thu gọn các hàng vào một danh sách phân loại bằng dấu phẩy với một truy vấn MYSQL duy nhất?
  • Thay thế các số trên kết quả được phân định dấu phẩy bằng MySQL?
  • Kết hợp nhiều hình ảnh thành một hình ảnh duy nhất bằng cách sử dụng JavaScript
  • C# Chương trình để chuyển đổi một số chuỗi thành một chuỗi được phân phối bằng dấu phẩy
  • Phân tích phân tích một std :: chuỗi được phân tách bằng dấu phẩy trong C ++
  • Chương trình PHP để phân chia chuỗi được phân định dấu phẩy nhất định thành một mảng các giá trị
  • Tìm các hàng có khớp trong cột được phân định đường ống với MySQL
  • Chuyển đổi chuỗi thành danh sách phân tách bằng dấu phẩy trong Java
  • In một vector trong danh sách phân loại bằng dấu phẩy, theo chỉ mục và được bao quanh bởi dấu ngoặc vuông [[]] trong Java
  • Trả lại danh sách từ các hàng khác nhau vào một trường duy nhất với MySQL
  • Chèn nhiều hàng trong MySQL?
  • Kết hợp hai loạt thành một khung dữ liệu trong gấu trúc
  • Chèn nhiều hàng vào một truy vấn MySQL duy nhất

Làm cách nào để chọn nhiều hàng trong MySQL?

Để chọn hai hàng cuối cùng, hãy sử dụng thứ tự theo giới hạn Desc 2.use ORDER BY DESC LIMIT 2.

Làm thế nào tôi có thể nhận được nhiều giá trị hàng trong một dấu phẩy được phân tách trong SQL Server?

Làm thế nào để có được nhiều hàng vào danh sách phân tách dấu phẩy trong SQL..
Mysql. MySQL có chức năng Group_concat [] cho phép chúng tôi xuất kết quả truy vấn của mình trong danh sách phân tách dấu phẩy: chọn nhóm_concat [petName] từ vật nuôi; ....
Cơ sở dữ liệu Oracle. ....
Máy chủ SQL. ....
Mariadb. ....
Postgresql.....
Sqlite.....
Nhiều cột ..

Làm cách nào để chọn các giá trị phân tách bằng dấu phẩy trong MySQL?

Trong MySQL, bạn có thể trả về kết quả truy vấn của mình dưới dạng danh sách 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 dành riêng cho mục đích kết hợp kết quả của một 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 bạn chọn.using the GROUP_CONCAT[] function. The GROUP_CONCAT[] function was built specifically for the purpose of concatenating a query's result set into a list separated by either a comma, or a delimiter of your choice.

Làm thế nào để bạn chọn các giá trị phân tách bằng dấu phẩy trong SQL?

Để tìm nạp các giá trị dấu phẩy [phân định] khỏi quy trình được lưu trữ, bạn cần sử dụng một biến với kiểu dữ liệu và kích thước giống như tham số đầu ra và truyền nó làm tham số đầu ra bằng cách sử dụng từ khóa đầu ra.make use of a variable with data type and size same as the Output parameter and pass it as Output parameter using OUTPUT keyword.

Bài Viết Liên Quan

Chủ Đề