MYSQL如何查询表中字段类型TYPE=date的字段信息?

例如,查询表结构的语句为:DESC tablename
在查询的结果中发现该表中有几个字段类型TYPE=date,
那么,此时如何用语句查询出那些TYPE=date的字段信息?
并不是想查出具体值。
前提是:我只知道这个表名=“tablename”,我想查出这个表中有几个字段是date类型的。
然后拿着这些查出的date类型的字段名称再去表中查出对应的所有记录。
最新回答
陌上画桑

2024-11-07 19:51:20

使用mysql_fetch_field
以下是例子.
mysql_fetch_field() 可以用来从某个查询结果中取得字段的信息。如果没有指定字段偏移量,则下一个尚未被 mysql_fetch_field() 取得的字段被提取。

对象的属性为:

name - 列名
table - 该列所在的表名
max_length - 该列最大长度
not_null - 1,如果该列不能为 NULL
primary_key - 1,如果该列是 primary key
unique_key - 1,如果该列是 unique key
multiple_key - 1,如果该列是 non-unique key
numeric - 1,如果该列是 numeric
blob - 1,如果该列是 BLOB
type - 该列的类型
unsigned - 1,如果该列是无符号数
zerofill - 1,如果该列是 zero-filled
=========
<?php
mysql_connect('localhost:3306', $user, $password)
or die("Could not connect: " . mysql_error());
mysql_select_db("database");
$result = mysql_query("select * from table")
or die("Query failed: " . mysql_error());
/* get column metadata */
$i = 0;
while ($i < mysql_num_fields($result)) {
echo "Information for column $i:<br />\n";
$meta = mysql_fetch_field($result);
if (!$meta) {
echo "No information available<br />\n";
}
echo "<pre>
blob: $meta->blob
max_length: $meta->max_length
multiple_key: $meta->multiple_key
name: $meta->name
not_null: $meta->not_null
numeric: $meta->numeric
primary_key: $meta->primary_key
table: $meta->table
type: $meta->type
unique_key: $meta->unique_key
unsigned: $meta->unsigned
zerofill: $meta->zerofill
</pre>";
$i++;
}
mysql_free_result($result);
?>
甜心猫宠女

2024-11-07 04:04:24

SELECT `datefield` FROM `tablename` WHERE 1

SELECT * FROM `tablename` WHERE `datefield`='2011-03-01'