我想要获取mysql表的列数据类型。
我认为我可以使用MYSQLFIELD
结构,但它是枚举字段类型。
然后我试着用mysql_real_query()
我得到的错误是query was empty
如何获取列数据类型?
发布于 2009-08-01 09:34:36
您可以使用information_schema columns表:
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name' AND COLUMN_NAME = 'col_name';
发布于 2009-07-31 23:50:11
下面的查询返回有关每个字段的信息列表,包括MySQL字段类型。下面是一个示例:
SHOW FIELDS FROM tablename
/* returns "Field", "Type", "Null", "Key", "Default", "Extras" */
发布于 2015-08-05 18:54:16
大多数答案都是重复的,对它们进行分组可能会很有用。基本上已经提出了两个简单的选择。
第一个选项
第一个选项有4个不同的别名,其中一些别名相当简短:
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
的替代方案,可以使用第二个FROM
:db_name FROM table_name
)。
这就给出了一些类似的结果:
+------------------+--------------+------+-----+---------+-------+
| 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 | |
+------------------+--------------+------+-----+---------+-------+
第二个选项
第二个选项稍微长了一点:
SELECT
COLUMN_NAME, DATA_TYPE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'db_name'
AND
TABLE_NAME = 'table_name';
它也不那么健谈:
+------------------+-----------+
| column_name | DATA_TYPE |
+------------------+-----------+
| product_id | int |
| name | varchar |
| description | text |
| meta_title | varchar |
+------------------+-----------+
不过,它的优点是允许使用AND COLUMN_NAME = 'column_name'
(或like
)按列进行选择。
https://stackoverflow.com/questions/1215368
复制相似问题