mysql - 将逗号分隔的字符串拆分为 mysql 中的行

标签 mysql sql

当我有像 1, 2, 3 这样的字符串列表时... 我想将其用作一栏

Ids
1
2
3

可以通过sql查询吗?

ex) SELECT IDs from (1, 2, 3...) <- 我知道这行不通。

最佳答案

使用任意数字的子查询来拆分您的字符串。您可以使用 '1,2,3' 而不是 vals。

SELECT
  DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(vals, ',', n.digit+1), ',', -1) val
FROM
  tt1
  INNER JOIN
  (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3  UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) n
  ON LENGTH(REPLACE(vals, ',' , '')) <= LENGTH(vals)-n.digit;

See it working

关于mysql - 将逗号分隔的字符串拆分为 mysql 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44919730/

相关文章:

MySQL 添加多个带有子选择查询的 WHERE

mysql - 插入或更新 - 正确的方法

sql - 如何在 Bigquery 中使用 except 子句?

mysql - 从部分重新创建完整表

mysql - 如何获得一个月的职业?

SQL 在 n 到 m 关系中选择

php - 登录成功后回显用户详细信息

java - 删除子类时,Hibernate 不会删除主行

mysql - 加入多个专栏

SQL Azure Rest api BeginExport...如何检查导出是否完成