SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='databasenamegoeshere'
AND DATA_TYPE='decimal' and TABLE_NAME = 'tablenamegoeshere'
SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename' order by DATA_TYPE;
如果你只想检查双重类型的文件,那么你可以很容易地做到这一点
SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME,DATA_TYPE
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename' AND DATA_TYPE like '%bigint%' order by DATA_TYPE;
如果您想检查哪个字段允许空类型等,那么您可以使用这个
SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME,IS_NULLABLE,DATA_TYPE
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='yourdatabasename' and DATA_TYPE like '%bigint%' and IS_NULLABLE ='NO' order by COLUMN_TYPE;
$sql = "desc MyTable";
$result = @mysql_query($sql);
while($row = @mysql_fetch_array($result)){
echo $row[0]."<br>"; // returns the first column of array. in this case Field
// the below code will return a full array-> Field,Type,Null,Key,Default,Extra
// for ($c=0;$c<sizeof($row);$c++){echo @$row[$c]."<br>";}
}
21条答案
按热度按时间2admgd591#
编辑:今天我学到了更好的方法。请看马克塞尔的答案。
解析的输出
SHOW COLUMNS FROM table;
更多信息请参见:http://dev.mysql.com/doc/refman/5.0/en/show-columns.htmlomjgkv6w2#
使用
mysql_fetch_field()
查看所有列数据。参见手册。警告:从php 5.5.0开始,此扩展已被弃用,以后将被删除
q5lcpyga3#
如果只需要字段名和类型(可能是为了方便复制粘贴到excel中):
删除
如果需要所有数据类型
vlf7wbxs4#
我在sql server中尝试过此查询,但效果很好:
v9tzhpje5#
您可以对mysql使用以下查询:
下面的示例代码展示了如何在php中实现上述语法以列出列的名称:
有关的输出的详细信息
SHOW COLUMNS FROM TABLE
访问:mysql reference。g6ll5ycj6#
不确定这是不是你要找的,但这对我很有用:
它以字符串的形式返回表或数组中列名/变量名的简单数组,这是动态构建mysql查询所需的。我的挫败感是我根本不知道如何在php中很好地索引数组,所以我不知道如何处理desc或show的结果。希望我的回答对像我这样的初学者有帮助!
检查结果:
print_r($col_names);
7gyucuyw7#
上帝的召唤
DESCRIBE
可以很好地获取表的所有列,但如果需要对其进行筛选,则需要使用SHOW COLUMNS FROM
相反。获取表的所有信息的php函数示例:
在我的例子中,我必须找到表的主键。所以,我用了:
下面是我的php函数:
rseugnpd8#
此查询获取数据库中所有列的列表,而不必指定表名。它只返回列名列表:
但是,当我在phpmyadmin中运行这个查询时,它显示了一系列错误。尽管如此,它还是奏效了。所以要小心使用。
np8igboo9#
当您想检查您的所有表结构与一些文件,然后使用此代码。在这个查询中,我选择column\u name、column\u type和table\u name来获取更多的细节。我使用按列类型排序,这样我就可以很容易地看到它。
如果你只想检查双重类型的文件,那么你可以很容易地做到这一点
如果您想检查哪个字段允许空类型等,那么您可以使用这个
你想查更多的话这个链接也帮你。
https://dev.mysql.com/doc/refman/5.7/en/columns-table.html
u1ehiz5o10#
在wordpress中:
9nvpjoqh11#
如果您使用php,请使用以下要点。
它可以获取选定字段的完整信息而不产生任何结果,以及所有自定义字段,例如:
如果上面的sql没有返回数据,还会得到字段名aname,bname,b的其他字段名
只有两行:
hrirmatl12#
试试这个我自己用的:
jjjwad0x13#
这个问题由来已久,但我在这里寻找一种方法,以动态方式(不一定只查找表的字段)查找给定查询的字段名。由于人们在其他相关问题中不断将此作为给定任务的答案,我将分享我发现的方法,使用gavin simpson的提示:
这可以很容易地修改为在数组中插入字段名。
使用简单的:
$sql="SELECT * FROM myTable LIMIT 1"
可以为您提供任何表的字段,而无需使用SHOW COLUMNS
或者任何额外的php模块,如果需要的话(删除数据转储部分)。希望这能帮助其他人。
mwecs4sa14#
最好的方法是使用信息模式元数据虚拟数据库。具体来说,就是information\u schema.columns表。。。
它非常强大,无需解析文本即可提供大量信息(如列类型、列是否可为空、最大列大小、字符集等)。。。
哦,这是标准的sql(然而
SHOW ...
是mysql特定的扩展)。。。有关
SHOW...
使用INFORMATION_SCHEMA
表,请查看上的mysql文档INFORMATION_SCHEMA
一般来说。。。yzuktlbb15#
我不是Maven,但这对我有用。。