MySQL takes out the comma-separated values ​​from a field to form a new field

MySQL takes out the comma-separated values ​​from a field to form a new field

1For example: To split the fields shown in Figure 1 into Figure 2

select account_id,
    substring_index(substring_index(a.related_shop_ids,','
    ,b.help_topic_id+1),',',-1) shopid
  from 
    sales_hang_account a
  join
    mysql.help_topic b
    on b.help_topic_id < (length(a.related_shop_ids) - length(replace(a.related_shop_ids,',',''))+1) 
  order by a.account_id

2: Then connect with the shops table to query and extract the fields we need. Here I need to extract name

select s.`name` as shopname,a.account_id from shops s
inner JOIN (

select account_id,
    substring_index(substring_index(a.related_shop_ids,','
    ,b.help_topic_id+1),',',-1) shopid
  from 
    sales_hang_account a
  join
    mysql.help_topic b
    on b.help_topic_id < (length(a.related_shop_ids) - length(replace(a.related_shop_ids,',',''))+1) 
  order by a.account_id)a on s.shop_id=a.shopid 

3: Combine the same account_id into one line, separated by commas

//These two are examples from the Internet select ID, group_concat(NAME) as NAME from table group by ID;

select ID,group_concat(NAME SEPARATOR ';') as NAME from a group by ID;
//With the help of the above two references select account_id,GROUP_CONCAT(shopname SEPARATOR',')as shopname from (select s.`name` as shopname,a.account_id from shops s
inner JOIN (

select account_id,
    substring_index(substring_index(a.related_shop_ids,','
    ,b.help_topic_id+1),',',-1) shopid
  from 
    sales_hang_account a
  join
    mysql.help_topic b
    on b.help_topic_id < (length(a.related_shop_ids) - length(replace(a.related_shop_ids,',',''))+1) 
  order by a.account_id)a on s.shop_id=a.shopid) a GROUP BY account_id

The effect is as follows

Second method

select g.account_id,g.related_shop_ids,GROUP_CONCAT(s.name)as shopname from sales_hang_account g left join shops s on FIND_IN_SET(s.shop_id , g.related_shop_ids)
GROUP BY g.account_id 

SqlServer

 [Product] -- The storage format of this field is 7,8,9,11,10,12, and the data type is nvarchar
select id,ProductName=stuff((select ',' + product_chinaname from base_supplier_product where charindex(','+ltrim(productid)+',',','+ Product + ',') > 0 for xml path('') ), 1, 1, '')
 FROM base_Pre_sale_project

result

This is the end of this article about how to extract comma-separated values ​​from a field in MySQL to form a new field. For more information about comma-separated values ​​in MySQL fields, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Two methods of MySql comma concatenation string query
  • Mysql query statement to get the first data of the comma in the field value
  • How to use comma delimiters in MySQL fields
  • How to convert a column of comma-separated values ​​into columns in MySQL

<<:  Implementation of fastdfs+nginx cluster construction

>>:  Detailed explanation of built-in methods of javascript array

Recommend

Example of how to set WordPress pseudo-static in Nginx

Quoting Baidu's explanation of pseudo-static:...

Example of using Docker to build an ELK log system

The following installations all use the ~/ direct...

Linux cut command explained

The cut command in Linux and Unix is ​​used to cu...

How to configure /var/log/messages in Ubuntu system log

1. Problem Description Today I need to check the ...

Summary of the Differences between SQL and NoSQL

Main differences: 1. Type SQL databases are prima...

Analysis of the principles of docker containers

Table of contents 01 What is the essence of a con...

Detailed installation history of Ubuntu 20.04 LTS

This article records the creation of a USB boot d...

Web Design Teaching or Learning Program

Section Course content Hours 1 Web Design Overvie...

Tips for implementing multiple borders in CSS

1. Multiple borders[1] Background: box-shadow, ou...

Analyze several common solutions to MySQL exceptions

Table of contents Preface 1. The database name or...

MySQL 8.0.19 Installation Tutorial

Download the installation package from the offici...

MySQL encoding utf8 and utf8mb4 utf8mb4_unicode_ci and utf8mb4_general_ci

Reference: MySQL character set summary utf8mb4 ha...

How to add a certificate to docker

1. Upgrade process: sudo apt-get update Problems ...