首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取mysql表列的数据类型?

如何获取mysql表列的数据类型?
EN

Stack Overflow用户
提问于 2009-08-01 07:33:05
回答 11查看 204.9K关注 0票数 123

我想要获取mysql表的列数据类型。

我认为我可以使用MYSQLFIELD结构,但它是枚举字段类型。

然后我试着用mysql_real_query()

我得到的错误是query was empty

如何获取列数据类型?

EN

回答 11

Stack Overflow用户

发布于 2009-08-01 09:34:36

您可以使用information_schema columns表:

代码语言:javascript
复制
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS 
  WHERE table_name = 'tbl_name' AND COLUMN_NAME = 'col_name';
票数 138
EN

Stack Overflow用户

发布于 2009-07-31 23:50:11

下面的查询返回有关每个字段的信息列表,包括MySQL字段类型。下面是一个示例:

代码语言:javascript
复制
SHOW FIELDS FROM tablename
/* returns "Field", "Type", "Null", "Key", "Default", "Extras" */

参见this manual page

票数 94
EN

Stack Overflow用户

发布于 2015-08-05 18:54:16

大多数答案都是重复的,对它们进行分组可能会很有用。基本上已经提出了两个简单的选择。

第一个选项

第一个选项有4个不同的别名,其中一些别名相当简短:

代码语言:javascript
复制
EXPLAIN db_name.table_name;
DESCRIBE db_name.table_name;
SHOW FIELDS FROM db_name.table_name;
SHOW COLUMNS FROM db_name.table_name;

(注:作为db_name.table_name的替代方案,可以使用第二个FROMdb_name FROM table_name)。

这就给出了一些类似的结果:

代码语言:javascript
复制
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| product_id       | int(11)      | NO   | PRI | NULL    |       |
| name             | varchar(255) | NO   | MUL | NULL    |       |
| description      | text         | NO   |     | NULL    |       |
| meta_title       | varchar(255) | NO   |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+

第二个选项

第二个选项稍微长了一点:

代码语言:javascript
复制
SELECT
  COLUMN_NAME, DATA_TYPE 
FROM
  INFORMATION_SCHEMA.COLUMNS 
WHERE
  TABLE_SCHEMA = 'db_name'
AND
  TABLE_NAME = 'table_name';

它也不那么健谈:

代码语言:javascript
复制
+------------------+-----------+
| column_name      | DATA_TYPE |
+------------------+-----------+
| product_id       | int       |
| name             | varchar   |
| description      | text      |
| meta_title       | varchar   |
+------------------+-----------+

不过,它的优点是允许使用AND COLUMN_NAME = 'column_name' (或like)按列进行选择。

票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1215368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档