What is the best way to return enum values in MySQL?(在 MySQL 中返回枚举值的最佳方法是什么?)
问题描述
我需要选择一列的枚举值.通过搜索,我发现了两种方法:
I need to select the enum values of a column. From searching I've found two ways:
SELECT column_type FROM information_schema.columns
WHERE table_name = 'MyTable' AND column_name = 'MyColumn';
另一个:
SHOW COLUMNS FROM `mytable` WHERE field = 'type';
虽然第一个查询会给我这个信息:
Although the first query will give me this info:
enum('value1','value2','value3')
第二个查询为我提供了相同的信息,并且还提供了额外的列.我宁愿只获取那些没有 enum() 和逗号的值,是否可能,或者我是否需要解析这些值?并不是说检查是否有更简单的方法很难.
The second query gives me the same and with additional columns as well. I would prefer to just get those values without the enum() and commas, is it possible, or do I need to parse the values out? Not that it's hard just checking if there is an easier way.
假设没有更简单的方法,上面两个查询哪个更好用?我注意到第二个查询在我运行时没有显示查询时间,我几乎认为它根本不需要任何时间.但是如果我打开分析器,我可以看到它确实需要时间,但它似乎快了一点.那么第二个查询会更有效吗?
Assuming there is no easier way, which of the two queries above is better to use? I noticed that the second query doesn't show the query time when I ran it, I almost thought it didn't require any time at all. But if I turn on the profiler I can see that it does take time, but it seem a bit faster. So would the second query be more efficient?
推荐答案
我猜你不能选择这些值,我最终用这个解析了这些值:
I guess you can't select those values out, I ended up parsing the values out with this:
$result = str_replace(array("enum('", "')", "''"), array('', '', "'"), $result);
$arr = explode("','", $result);
return $arr;
这篇关于在 MySQL 中返回枚举值的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 MySQL 中返回枚举值的最佳方法是什么?
基础教程推荐
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- 无法解决整理冲突 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 是否可以执行按位分组功能? 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
