(select from 表名 where status='process' order by date_created desc)
union all
(select from 表名 where status='done' order by date_created asc)
union all
(select from 表名 where status='failure' order by date_created asc)
字符集很简单,但是数据的排序需要通过SQL语句来协助完成,ORDER BY 语句,代码如下:
// 假设你已经成功连接了数据库($mysqli变量假设为连接的资源句柄)// 通过对象方式设置字符编码
$mysqli -> set_charset('utf8');
// 通过函数方式设置字符编码
mysqli_set_charset($mysqli, 'utf8');
// 那么接下来是数据排序的话,需要编写一条SQL查询语句(DESC 倒序排列 | ASC 正序排列)
$sql = "SELECT `字段` FROM `表名` WHERE TRUE ORDER BY `字段` DESC;";
如果还有什么问题,欢迎追问~
之前查出的结果集 是什么内容啊?,说不定你写错了返回的结果集不一样。 不能先保存在临时表里再查?
我试过你这个语句看起来是没有问题的。但不知道FP 这个是怎么得来的,是什么样的字段类型。
select tb1FP ,(select COUNT(distinct(tb2FP))+1
from
(
select '1429%' FP
union all
select '4286%' FP
union all
select '2857%' FP
union all
select '1429%' FP
) tb2
where tb2FP>tb1FP
) as PM
from
(
select '1429%' FP
union all
select '4286%' FP
union all
select '2857%' FP
union all
select '1429%' FP
) tb1
order by PM
在MySQL数据库中,数据保存的顺序都是按照插入数据的先后顺序来插入的,而如果数据的ID编号也是按照先后顺序从小到大排序的,那自然也是按照ID来排序的。
如果是希望在查询的时候要按ID排序,只需要在查询语句后面添加:order by id 即可。
这个如果想要性能的话,就用下面的sql语句实现:
select orderNo from (select (@rowNum:=@rowNum+1) orderNo , userid ,pid from TABLE,(Select (@rowNum :=0) ) b )t where tuserid=2694
然后php获得这条结果数组,取第一个元素即是排序
如果对这个sql语句有疑问,不明白,可以使用一个比较耗费性能的方法:
select userid from record
执行这条语句,获得一个数组$res
遍历前设置一个记录排序的标识 $seq=1;
for(){
$userid=$res['userid'];//把第seq 个位置的学号拿出来,跟想要的学号比
if($userid==2694){
break;
}
$seq++;
}
//如果 这个排序标识比结果集数组大小还大,说明没这个userid的记录。
$seq就是排序
我没有测试 你可以自己试一下
以上就是关于mysql 数据根据一个字段的不同状态做排序全部的内容,包括:mysql 数据根据一个字段的不同状态做排序、php中使用mysqli创建数据库的时候怎么指定字符集和排序规则、MySQL数据库中,我写的排序突然不好使了 全部排成了1 语句是这样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)