我的mysql数据表person中有一个身份证号码字段,我想根据其中的出生年月日,也就是身份证号码中的第七到第14个字段来排序。重点是排序。person表的创建语句如下:
$persql = create table person
(
id int not null auto_increment,
personid char(18) not null,
personname varchar(20),
homeid int,
about varchar(10),
sex varchar(4),
edu varchar(8),
mz varchar(4),
primary key(id),
unique(personid)
)engine=innodb default charset=utf8;
查询语句$sql=select * from person;
$sp=mysql_query($sql, $con);
其中personid字段存储身份证号码。我要将所有字段输出,如下图所示,
希望根据其中的出生年月日排序。
目前我想到的方法是把数据存储到一个二维的数组中
$arr=array();
$i=0;
while ($row = mysql_fetch_array($sp)) {
$arr[$i]=$row;
$i++;
}
进行二维数组排序,再输出。但是我觉得这个方法太麻烦了,希望有更好的方法。
回复讨论(解决方案) 在mysql就可以排序了
select * from person order by substring(personid,7,8) desc
select * from person order by substring(personid,6,13) desc
感谢楼上!这个函数太好用了,又get到一个新的技能。