10

可能重复:
Mysql 选择枚举值

我在以下位置设置了一个列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;

我得到类型TextInstedENUM

4

1 回答 1

9

您应该解析来自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.xml 中解析这个字符串。

于 2012-08-28T08:28:21.503 回答