mysql - SQL中如何将字符串拆分为单列并排列在同一列中

标签 mysql sql

我有一列如下

Products
jeans,oil
jeans,shampoo

我想拆分字符串并使用 SQL 在同一列中使用它们。我想要的结果是

Products  count
jeans     2
oil       1
shampoo   1

你能指导我得到这个结果吗

谢谢

最佳答案

您将 CSV 数据存储在 SQL 表中,这不是一件好事。但看起来你正试图摆脱它,这是一件好事。这是一个使用带有 SUBSTRING_INDEX 的联合的选项:

SELECT Products, COUNT(*) AS count
FROM
(
    SELECT SUBSTRING_INDEX(Products, ',', 1) AS Products FROM yourTable
    UNION ALL
    SELECT SUBSTRING_INDEX(Products, ',', -1) FROM yourTable
) t
GROUP BY Products
ORDER BY
    count DESC, Products;

enter image description here

Demo

关于mysql - SQL中如何将字符串拆分为单列并排列在同一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50961749/

相关文章:

mysql - SQL 子查询练习 : Display the salesmen which name are alphabetically lower than the name of the customers

c# - 在C#中调用MySql函数来验证用户名和密码

Mysql 添加根据其他 2 列计算的日期时间列

mysql - 在 MySQL 中索引 VARCHAR

mysql - 使用 SQL 分配资源(行)

sql - SSRS 报告图表在 Outlook 中工作正常,但在 Gmail 和 Thunderbird 中不起作用

mysql - MySQL 中 GROUP_CONCAT 和 Longtext 的问题

mysql - SQL - 如何从其他表中选择信息

mysql - 存储过程在 MySql 中无法正常工作?

sql - 插入 HANA 表并指定列