除了 FIND_IN_SET mysql 字符串转list的方法
时间: 2023-06-28 20:11:29 浏览: 123
MySQL中还有其他一些字符串转list的方法,例如使用正则表达式函数REGEXP_SUBSTR()。
例如,如果我们有一个字符串“apple,banana,orange”,我们可以使用以下查询将其转换为列表:
```
SELECT REGEXP_SUBSTR('apple,banana,orange', '[^,]+', 1, levels.n) as fruit
FROM (SELECT DISTINCT 1 + units.i + tens.i * 10 AS n
FROM
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) AS units,
(SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) AS tens
HAVING n <= 1 + LENGTH('apple,banana,orange') - LENGTH(REPLACE('apple,banana,orange', ',', ''))) as levels;
```
这将返回以下结果:
```
+--------+
| fruit |
+--------+
| apple |
| banana |
| orange |
+--------+
```
这个查询使用正则表达式模式“[^,]+”来匹配逗号分隔的字符串中的每个单词,并使用一个“levels”子查询来生成包含字符串中所有单词的数字序列。然后,REGEXP_SUBSTR函数根据数字序列中的位置提取每个单词,并将其作为单独的行返回。
阅读全文