gpt4 book ai didi

MySQL:查询 SET 的可用选项列表

转载 作者:行者123 更新时间:2023-11-29 01:14:23 25 4
gpt4 key购买 nike

在特定的表中,存在一个具有特定合法值的 SET 类型的字段:

    personType SET('CUSTOMER','SUPPLIER','EMPLOYEE', 'CONTRACTOR') NOT NULL

有什么方法可以查询 MySQL 以获得有效值的列表吗?在 MySQL 解释器中,我将只运行 DESCRIBE someTable; 但是,如果有一种更直接的方法可以以编程方式使用而无需大量解析,那就太好了。

谢谢。

最佳答案

现在,这简直是吓坏了,但它仅适用于 MySQL,而且可以正常工作!

SELECT TRIM("'" FROM SUBSTRING_INDEX(SUBSTRING_INDEX(
(SELECT TRIM(')' FROM SUBSTR(column_type, 5)) FROM information_schema.columns
WHERE table_name = 'some_table' AND column_name = 'some_column'),
',', @r:=@r+1), ',', -1)) AS item
FROM (SELECT @r:=0) deriv1,
(SELECT ID FROM information_schema.COLLATIONS) deriv2
HAVING @r <=
(SELECT LENGTH(column_type) - LENGTH(REPLACE(column_type, ',', ''))
FROM information_schema.columns
WHERE table_name = 'some_table' AND column_name = 'some_column');

只需为您的特定表/列替换“some_table”和“some_column”,看看魔法!

您会看到“information_schema.COLLATIONS”的奇怪用法 - 这是因为我们需要一个表 - 任何表 - 包含至少 N 行,其中 N是集合中元素的数量。

关于MySQL:查询 SET 的可用选项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9618800/

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