我已经设置了一个表,其中一个字段是集合类型 - set('1','2','3','4','5')。
有没有办法将集合类型数据下拉到网页上的表单中 - 就像你会说更新记录时运行查询以从表中选择某些数据并将其下拉到更新表单中一样。但是,与其拉下插入的数据——你能拉下设置字段时输入的集合类型数据吗?
您将需要查询 information_schema 表,然后用 PHP 解析该字段(恕我直言,这应该是微不足道的)
SELECT column_type
FROM information_schema.columns
WHERE TABLE_SCHEMA='your_database'
AND TABLE_NAME = 'your_table'
AND COLUMN_NAME = 'your_column'
结果应该是这样的: set('1','2','3','4','5')
尽管ENUM
Chris Komlenic 的文章8 Reasons Why MySQL's ENUM Data Type Is Evil专门写过,但他同样适用于SET
. 尤其是:
4. 获取不同 ENUM 成员的列表很痛苦。
一个非常常见的需求是使用数据库中的可能值填充选择框或下拉列表。像这样:
选择颜色:
[ select box ]
如果这些值存储在名为“colors”的参考表中,您所需要的只是:
SELECT * FROM colors
...然后可以将其解析出来以动态生成下拉列表。您可以在参考表中添加或更改颜色,您的性感订单表格将自动更新。惊人的。现在考虑邪恶的 ENUM:如何提取成员列表?您可以在表中的 ENUM 列中查询 DISTINCT 值,但这只会返回实际使用并存在于表中的值,而不一定是所有可能的值。您可以查询 INFORMATION_SCHEMA 并使用脚本语言将它们从查询结果中解析出来,但这不必要地复杂。事实上,我不知道有什么优雅的、纯粹的 SQL 方法来提取 ENUM 列的成员列表。