我需要选择列的枚举值。通过搜索,我发现了两种方法:
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()”和逗号的值,是否可能,还是我需要解析这些值?并不是仅检查是否有更简单的方法就很困难。
假设没有更简单的方法,那么上面两个查询中的哪个更适合使用?我注意到第二个查询在运行时没有显示查询时间,我几乎认为它根本不需要任何时间。但是,如果我打开探查器,则可以看到它确实需要时间,但是看起来更快一些。那么第二个查询会更有效吗?
我猜你不能选择那些值,我最终用以下方法解析出这些值:
$result = str_replace(array("enum('", "')", "''"), array('', '', "'"), $result); $arr = explode("','", $result); return $arr;