gpt4 book ai didi

Mysql explode 函数

转载 作者:行者123 更新时间:2023-11-30 01:33:55 28 4
gpt4 key购买 nike

我有一个表,其中有一个包含以下记录的字段:

1,2,3,4,5,6

我想请教以下两件事:

1)如何在另一个表中创建外键?规则是:对于字段“field_name”中以逗号分隔的任何值,必须是 other_table.field_id 的记录

2)我怎样才能做类似的事情:SELECTexplode(field) AS ex FROM table_name?行的名称可能可以检索为 ex[0]-->1, ex[1]-->2

最佳答案

虽然可以对逗号分隔的字段进行联接(例如使用 FIND_IN_SET),但我认为没有办法对外键执行此操作。

MySQL 没有 explode 功能,您的想法似乎建议每行使用不同数量的列。

如有必要,您可以将它们分成不同的行,但这很丑陋。还有更多不使用逗号分隔字段的充分理由

SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ',', 1 + units.i + tens.i * 10 + hundreds.i * 100), ',', -1)
FROM table_name
CROSS JOIN (SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) units
CROSS JOIN (SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) tens
CROSS JOIN (SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) hundreds

关于Mysql explode 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17148274/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com