一尘不染

MySQL选择枚举值

mysql

我需要选择列的枚举值。通过搜索,我发现了两种方法:

SELECT column_type FROM information_schema.columns 
WHERE table_name = 'MyTable' AND column_name = 'MyColumn';

和另一个:

SHOW COLUMNS FROM `mytable` WHERE field = 'type'

尽管第一个查询将为我提供此信息:

enum('value1','value2','value3')

第二个查询给了我相同的内容,并且还有其他列。我宁愿只获取那些没有“
enum()”和逗号的值,是否可能,还是我需要解析这些值?并不是仅检查是否有更简单的方法就很困难。

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


阅读 426

收藏
2020-05-17

共1个答案

一尘不染

我猜你不能选择那些值,我最终用以下方法解析出这些值:

$result = str_replace(array("enum('", "')", "''"), array('', '', "'"), $result);
$arr = explode("','", $result);
return $arr;
2020-05-17