Vấn đề:
Bạn muốn tách một chuỗi trong PostgreSQL.
Ví dụ 1:
Bạn có một câu và bạn muốn chia nó bằng ký tự khoảng trắng.
Giải pháp 1:
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
Kết quả như sau:
phần |
---|
Đó là |
an |
ví dụ |
. |
Thảo luận:
Để lấy tất cả các phần của câu dưới dạng các phần tử của một mảng trong PostgreSQL, hãy sử dụng hàm string_to_array (text, delimiter). Văn bản là văn bản bạn muốn tách và dấu phân cách là chuỗi (ở đây, khoảng trắng) mà bạn muốn tách văn bản. Cách sử dụng đơn giản string_to_array(text, delimiter)
chức năng:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;
sẽ trả về kết quả sau:
phần |
---|
{Đó là, một ví dụ, câu.} |
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
Điều này sẽ tạo ra một cột có tất cả các phần chuỗi, mỗi phần nằm trong một hàng riêng biệt.
Ví dụ 2:
Trong sentences
bảng, có một số câu.
câu |
---|
Đây là câu đầu tiên. |
Và đây là cái còn lại. |
Bạn muốn tách các câu bằng ký tự khoảng trắng.
Giải pháp 2:
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Kết quả như sau:
phần |
---|
Cái này |
là |
cái |
đầu tiên |
. |
Và |
đây là |
cái |
khác |
một. |
Thảo luận:
Cũng giống như trong ví dụ trước, sử dụng các hàm string_to_array (văn bản, dấu phân tách) và unnest (mảng). Văn bản phải là tên cột (câu), nhưng dấu phân cách vẫn là khoảng trắng (''). Lần này, bạn sử dụng dữ liệu từ bảng, vì vậy bạn cần sử dụng từ khóa FROM cùng với tên bảng.
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Ví dụ 3:
Trong sentences
bảng, có hai cột:id
và câu sentence
.
id | câu|
---|---|
1 | Đây là câu đầu tiên. |
2 | Và đây là cái còn lại. |
Bạn muốn tách các câu bằng ký tự khoảng trắng.
Giải pháp 3:
SELECT id, unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Kết quả như sau:
id | bộ phận |
---|---|
1 | Cái này |
1 | là |
1 | cái |
1 | đầu tiên |
1 | câu. |
2 | Và |
2 | đây là |
2 | cái |
2 | khác |
2 | một. |
Thảo luận:
Ví dụ này rất giống, nhưng bạn cũng muốn xem id
cột. Để xem cột này, chỉ cần thêm nó vào SELECT
liệt kê và nhớ bao gồm dấu phẩy. Bạn sẽ thấy ID của câu cùng với các phần của câu trong kết quả. Ví dụ:câu đầu tiên được chia thành 5 phần và nó có ID 1
. Do đó, ID cho cả 5 phần trong kết quả sẽ là 1
. Câu tiếp theo, với ID 2
, cũng được chia thành 5 phần và mỗi phần này sẽ được hiển thị bằng id = 2
.