首先做一下查询某个字段不重复(使用group by);
select * from 表名 where group by 不重复的字段名;
在做一下排序,我之前有发过一次排序,这次就做一个简单排序
order by 字段a=0 desc, 字段a desc,字段b desc (a字段等于0在最前面,a字段除了0之外的都为倒叙,b字段倒叙);
这样组合起来就好了
select * from 表名 where group by 不重复的字段名 order by 字段a=0 desc, 字段a desc,字段b desc;
mysqli_result::fetch_fields
mysqli_fetch_fields
(PHP 5)
mysqli_result::fetch_fields -- mysqli_fetch_fields — Returns an array of objects representing the fields in a result set
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world")
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error())
exit()
}
$query = "SELECT * from yourtablename"
if ($result = mysqli_query($link, $query)) {
/* Get field information for all columns */
$finfo = mysqli_fetch_fields($result)
foreach ($finfo as $val) {
printf("Name: %s\n", $val->name)
printf("Table: %s\n", $val->table)
printf("max. Len: %d\n", $val->max_length)
printf("Flags: %d\n", $val->flags)
printf("Type: %d\n\n", $val->type)
}
mysqli_free_result($result)
}
/* close connection */
mysqli_close($link)
?>
mysql安装成功后可以看到已经存在mysql、information_schema和test这个几个数据库,information_schema库中有一个名为COLUMNS的表,这个表中记录了数据库中所有表的字段信息。知道这个表后,获取任意表的字段就只需要一条select语句即可。例如:select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name'
上述的做法有一点问题,如果多个数据库中存在你想要查询的表名,那么查询的结果会包括全部的字段信息。通过DESC information_schema.COLUMNS可以看到该表中列名为TABLE_SCHEMA是记录数据库名,因此下面的写法更为严格
select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name' and table_schema = 'your_db_name'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)