从表列中选择设置数据

时间:2013-10-24 18:24:15

标签: php mysql field

我已经设置了一个表格,其中一个字段是一个集合类型 - 设置('1','2','3','4','5')。

有没有办法将设置类型数据下拉到网页上的表单中 - 就像更新记录一样,您可以在其中运行查询以从表中选择某些数据并将其下拉到您的表中更新表格。但是,不是拉下插入的数据 - 你可以拉动设置字段时输入的设置类型数据吗?

2 个答案:

答案 0 :(得分:0)

您将需要查询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')

答案 1 :(得分:-1)

虽然他专门撰写关于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并从查询结果中解析它们,但这不必要地复杂化。实际上,我不知道提取ENUM列的成员列表的任何优雅,纯粹的SQL方式。