【问题标题】:How can I get enum possible values in a MySQL database using php? [duplicate]如何使用 php 在 MySQL 数据库中获取枚举可能值? [复制]
【发布时间】:2012-08-22 17:29:10
【问题描述】:

可能重复:
Mysql Select Enum Values

我在Mysql设置了一个专栏:

输入:ENUM

Length/Values: '01','02','03','04','05','06','07','08','09','10','11','12'

我正在尝试从数据库中检索这些值:

我发现另一个帖子有同样的问题,但我的代码不起作用

$type = $mysqli->query( "SHOW COLUMNS FROM {$tableName} WHERE Field = 'type'" )->fetch_object()->Type;
        preg_match('/^enum\((.*)\)$/', $type, $matches);
        foreach( explode(',', $matches[1]) as $value )
        {
             $enum[] = trim( $value, "'" );
        }
        return $enum;

我输入Text ENUM 的输入

【问题讨论】:

标签: php mysql sql enums


【解决方案1】:

您应该从information_schema.columns 表中解析信息-

SELECT
  column_type
FROM
  information_schema.columns
WHERE
  table_schema = 'your_schema' AND table_name = 'your_table' AND column_name = 'your_column'

...另一个查询 -

SELECT
  TRIM(TRAILING ')' FROM TRIM(LEADING '(' FROM TRIM(LEADING 'enum' FROM column_type))) column_type
FROM
  information_schema.columns
WHERE
  table_schema = 'your_schema' AND table_name = 'your_table' AND column_name = 'your_column';

会有这样的东西 - enum('01','02','03')。在 php-application 中解析这个字符串。

【讨论】:

  • 不要忘记添加值'',它隐含在 MySQL 的每个枚举中。或NULL,如果该字段可以为空。
猜你喜欢
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 2012-08-05
  • 2023-02-03
相关资源
最近更新 更多