在 MySQL 中返回枚举值的最佳方法是什么?

2024-04-15数据库问题
8

本文介绍了在 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 中返回枚举值的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

Mysql目录里的ibtmp1文件过大造成磁盘占满的解决办法
ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致...
2025-01-02 数据库问题
151

SQL 子句“GROUP BY 1"是什么意思?意思是?
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)...
2024-04-16 数据库问题
62

MySQL groupwise MAX() 返回意外结果
MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)...
2024-04-16 数据库问题
13

MySQL SELECT 按组最频繁
MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)...
2024-04-16 数据库问题
16

为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)...
2024-04-16 数据库问题
13

MySQL GROUP BY DateTime +/- 3 秒
MySQL GROUP BY DateTime +/- 3 seconds(MySQL GROUP BY DateTime +/- 3 秒)...
2024-04-16 数据库问题
14