Mysql选择枚举值

Jok*_*ker 16 mysql enums

我需要选择列的枚举值.从搜索中我发现了两种方法:

SELECT column_type FROM information_schema.columns 
WHERE table_name = 'MyTable' AND column_name = 'MyColumn';
Run Code Online (Sandbox Code Playgroud)

和另外一个:

SHOW COLUMNS FROM `mytable` WHERE field = 'type'
Run Code Online (Sandbox Code Playgroud)

虽然第一个查询会给我这个信息:

enum('value1','value2','value3')
Run Code Online (Sandbox Code Playgroud)

第二个查询给了我相同的和其他列.我更愿意在没有"enum()"和逗号的情况下获取这些值,是否可能,或者我是否需要解析这些值?并不是说检查是否有更简单的方法很难.

假设没有更简单的方法,上面两个查询中的哪一个更好用?我注意到第二个查询没有显示我运行时的查询时间,我几乎认为它根本不需要任何时间.但是,如果我打开探查器,我可以看到它确实需要时间,但它似乎更快一点.那么第二个查询会更有效吗?

Jok*_*ker 7

我想你不能选择那些值,我最终解析了这个值:

$result = str_replace(array("enum('", "')", "''"), array('', '', "'"), $result);
$arr = explode("','", $result);
return $arr;
Run Code Online (Sandbox Code Playgroud)

  • 请注意,每个枚举在MySQL中都有一个隐含的`''`成员.不要忘记将其添加到您的阵列中.(如果需要,也是"NULL".) (2认同)