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

Tôi đang cố gắng sử dụng một cột có danh sách các giá trị được phân tách bằng dấu phẩy trong mệnh đề in. Tôi đã nghĩ đến việc thực hiện chứa nhưng sẽ không chính xác khi tìm kiếm các giá trị một chữ số

Ví dụ. 1,5,12,14,16,15,18,19,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,40,41,

Đây là lỗi mà tôi đang nhận được

[MySql.Data]  
ErrorCode: -2147467259, Number: 1064  
ErrorMessage: You have an error in your SQL syntax; check the manual that  
corresponds to your MySQL server version for the right syntax to use near  
'cpei5.value' at line 12

Đây là truy vấn của tôi

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value

Chúng ta có thể hiển thị kết quả dưới dạng danh sách được phân tách bằng dấu phẩy với sự trợ giúp của hàm ‘concat()’ với tham số ‘,’

Bây giờ chúng ta hãy xem một ví dụ. Đầu tiên, chúng ta sẽ tạo một bảng. Lệnh CREATE dùng để tạo bảng

mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)

Chèn bản ghi

mysql> insert into CommaSeperateDemo values(1,'John','Taylor');
Query OK, 1 row affected (0.17 sec)

mysql> insert into CommaSeperateDemo values(2,'Carol','Taylor');
Query OK, 1 row affected (0.12 sec)

mysql> insert into CommaSeperateDemo values(3,'Johnson','T.');
Query OK, 1 row affected (0.16 sec)

Bây giờ chúng ta hãy hiển thị tất cả các bản ghi

mysql> select *from CommaSeperateDemo;

Sau đây là đầu ra

+------+-----------+----------+
| Id   | FirstName | LastName |
+------+-----------+----------+
|    1 | John      | Taylor   |
|    2 | Carol     | Taylor   |
|    3 | Johnson   | T.       |
+------+-----------+----------+
3 rows in set (0.00 sec)

Đây là cú pháp để lấy kết quả dưới dạng danh sách được phân tách bằng dấu phẩy với sự trợ giúp của concat()

Select concat(ColumnName1, ',', ColumnName2, ',', ColumnName3,.............) as AliasName from yourTableName;

Bây giờ chúng ta hãy thực hiện cú pháp trên trong truy vấn sau

mysql> SELECT concat(Id, ',', FirstName,',', LastName) as CONCATEIDFIRSTANDLASTNAME from CommaSeperateDemo;

Sau đây là cú pháp

________số 8

Sử dụng FIND_IN_SET() thay vì MySQL IN(). Trước tiên chúng ta hãy tạo một -

mysql> create table DemoTable1423
   -> (
   -> CountryName varchar(100)
   -> );
Query OK, 0 rows affected (0.51 sec)

Chèn một số bản ghi vào bảng bằng cách sử dụng chèn -

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
0

Hiển thị tất cả các bản ghi từ bảng bằng select -

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
1

Điều này sẽ tạo ra đầu ra sau -

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
2

Đây là truy vấn để tìm nạp các bản ghi bằng FIND_IN_SET()−

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
3

Điều này sẽ tạo ra đầu ra sau -

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
4

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


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

Đá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ừ

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
50

Trả về chuỗi con từ chuỗi str trước khi đếm số lần xuất hiện của dấu phân cách. Nếu số đếm là dương, mọi thứ ở bên trái của dấu phân cách cuối cùng (đếm từ bên trái) được trả về. Nếu số đếm là âm, mọi thứ ở bên phải của dấu phân cách cuối cùng (đếm từ bên phải) được trả về.

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
51 thực hiện khớp phân biệt chữ hoa chữ thường khi tìm kiếm dấu phân cách

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
7

Chức năng này an toàn cho nhiều byte

Các định nghĩa

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
5

Dung dịch

Giả 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ụ:

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
52), đâ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ẩy

Với chức năng

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
53, 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

mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)
1

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

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
51 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

mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)
3

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

mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)
4

Hãy cẩn thận

Một điều cần lưu ý về

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
51 là hàm trả về toàn bộ chuỗi nếu trường được yêu cầu không tồn tại

Ví dụ:

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
56 trả về địa chỉ đầy đủ

mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)
7

Sau đó, cố gắng trích xuất trường thứ sáu bằng

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
57 sẽ cung cấp cho chúng tôi mã zip (trường thứ năm) sai

mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)
9

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ệ

mysql> insert into CommaSeperateDemo values(1,'John','Taylor');
Query OK, 1 row affected (0.17 sec)

mysql> insert into CommaSeperateDemo values(2,'Carol','Taylor');
Query OK, 1 row affected (0.12 sec)

mysql> insert into CommaSeperateDemo values(3,'Johnson','T.');
Query OK, 1 row affected (0.16 sec)
0

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

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
51 để sắp xếp kết quả theo một trong các trường

Tìm kiếm trong cột chứa các giá trị được phân tách bằng dấu phẩy

MySQL 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ỉ mục dựa trên một giá trị

SELECT soi.*
FROM   sales_order_item soi
       INNER JOIN sales_order so
            ON  so.entity_id = soi.order_id
       INNER JOIN sales_order_address soa
            ON  soa.parent_id = so.entity_id
       INNER JOIN catalog_product_entity cpe
            ON  cpe.sku = soi.sku
       INNER JOIN catalog_product_entity_text cpei5
            ON  cpei5.row_id = cpe.entity_id
       INNER JOIN eav_attribute ea5
            ON  ea5.attribute_code LIKE 'state_not_allowed'
            AND ea5.attribute_id = cpei5.attribute_id
WHERE  soa.address_type = 'shipping'
       AND date_add(so.created_at, interval 365 DAY) >= CURRENT_DATE()
       AND date_add(so.created_at, interval 365 DAY) <= date_add(CURRENT_DATE(), interval 30 DAY)
       AND cpe.type_id = 'simple'
       AND soa.region_id IN cpei5.value
59 trong chuỗi
mysql> create table CommaSeperateDemo
   - > (
   - > Id int,
   - > FirstName varchar(100),
   - > LastName varchar(100)
   - > );
Query OK, 0 rows affected (0.93 sec)
10

Làm cách nào để chọn nhiều hàng làm danh sách được phân tách bằng dấu phẩy trong SQL?

Câu trả lời của bạn .
Dữ liệu thử nghiệm KHAI BÁO @Table1 BẢNG(ID INT, Giá trị INT) CHÈN VÀO @Table1 GIÁ TRỊ (1.100),(1.200),(1.300),(1.400)
Truy vấn CHỌN ID ,STUFF((CHỌN ', ' + CAST(Giá trị NHƯ VARCHAR(10)) [văn bản()] TỪ @Table1 WHERE ID = t. ID CHO ĐƯỜNG DẪN XML(''), LOẠI). giá trị('. ','

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í.

Làm cách nào để nhận nhiều giá trị hàng trong MySQL được phân tách bằng dấu phẩy?

Cách đưa nhiều hàng vào một danh sách được phân tách bằng 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 được phân tách bằng dấu phẩy. CHỌN GROUP_CONCAT(PetName) TỪ Thú cưng;.
Cơ sở dữ liệu Oracle. .
Máy chủ SQL. .
MariaDB. .
PostgreSQL. .
SQLite. .
Nhiều cột

SQL tính toán các giá trị được phân tách bằng dấu phẩy như thế nào?

Mẫu SQL. Làm cách nào tôi có thể đếm số lượng giá trị được phân tách bằng dấu phẩy trong một chuỗi? . replace all occurrences of , with an empty string "" , then subtract its LENGTH from the LENGTH of the unadulterated string, which gives you the number of , characters.