我想获取mysql表的列数据类型.
以为我可以使用MYSQLFIELD结构,但它是枚举的字段类型.
然后我尝试了 mysql_real_query()
我得到的错误是 query was empty
如何获取列数据类型?
bri*_*zil 90
您可以使用information_schema列表:
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name' AND COLUMN_NAME = 'col_name';
Run Code Online (Sandbox Code Playgroud)
Jam*_*ore 68
下面的查询返回有关每个字段的信息列表,包括MySQL字段类型.这是一个例子:
SHOW FIELDS FROM tablename
/* returns "Field", "Type", "Null", "Key", "Default", "Extras" */
Run Code Online (Sandbox Code Playgroud)
请参阅本手册页.
Ski*_*rou 29
大多数答案都是重复的,将它们分组可能很有用.基本上已经提出了两个简单的选项.
第一个选项有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;
Run Code Online (Sandbox Code Playgroud)
(注意:作为替代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 | |
+------------------+--------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
第二个选项有点长:
SELECT
COLUMN_NAME, DATA_TYPE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'db_name'
AND
TABLE_NAME = 'table_name';
Run Code Online (Sandbox Code Playgroud)
它也不那么健谈了:
+------------------+-----------+
| column_name | DATA_TYPE |
+------------------+-----------+
| product_id | int |
| name | varchar |
| description | text |
| meta_title | varchar |
+------------------+-----------+
Run Code Online (Sandbox Code Playgroud)
它具有允许每列选择使用AND COLUMN_NAME = 'column_name'(或like)的优点.
jon*_*ham 15
要获取所有列的数据类型:
describe table_name
Run Code Online (Sandbox Code Playgroud)
或者只是一列:
describe table_name column_name
Run Code Online (Sandbox Code Playgroud)
请使用以下mysql查询.
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM information_schema.columns
WHERE table_schema = '<DATABASE NAME>'
AND table_name = '<TABLE NAME>'
AND COLUMN_NAME = '<COLOMN NAME>'
Run Code Online (Sandbox Code Playgroud)
请参阅此链接
mysql> SHOW COLUMNS FROM mytable FROM mydb;
mysql> SHOW COLUMNS FROM mydb.mytable;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮到你
首先选择数据库使用use testDB;然后执行
desc `testDB`.`images`;
-- or
SHOW FIELDS FROM images;
Run Code Online (Sandbox Code Playgroud)
输出:

| 归档时间: |
|
| 查看次数: |
145597 次 |
| 最近记录: |