>백엔드 개발 >PHP 튜토리얼 >PHP查询mysql,根据其中的身份证字段,按出生年月日排序

PHP查询mysql,根据其中的身份证字段,按出生年月日排序

WBOY
WBOY원래의
2016-06-23 13:09:541517검색

我的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到一个新的技能。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.