mysql中逗号分隔为临时表
时间: 2023-10-12 19:47:31 浏览: 112
要在MySQL中将逗号分隔的字符串拆分到临时表中,可以使用以下步骤:
1. 创建一个临时表,用于存储拆分后的值:
```sql
CREATE TEMPORARY TABLE temp_table (value VARCHAR(255));
```
2. 使用`SUBSTRING_INDEX`函数将逗号分隔的字符串拆分成多个值,并插入到临时表中:
```sql
INSERT INTO temp_table
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(your_column, ',', n), ',', -1) AS value
FROM your_table
CROSS JOIN (
SELECT 1 + n + thousands.n + millions.n * 1000 AS n
FROM (
SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
) AS thousands
CROSS JOIN (
SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
) AS millions
) AS numbers
WHERE n <= (LENGTH(your_column) - LENGTH(REPLACE(your_column, ',', ''))) + 1;
```
请将上述代码中的`your_table`替换为包含逗号分隔字符串的表名,`your_column`替换为包含逗号分隔字符串的列名。
3. 现在,临时表`temp_table`中的每一行都包含一个拆分后的值。可以使用以下查询来检索这些值:
```sql
SELECT value FROM temp_table;
```
4. 最后,如果不再需要这个临时表,可以使用以下语句删除它:
```sql
DROP TEMPORARY TABLE temp_table;
```
通过这些步骤,你可以将逗号分隔的字符串拆分到临时表中,并在需要时检索和处理这些值。
阅读全文