정렬에 사용되는 mysql 순서 기준 규칙을 알고 싶으십니까? 이 글은 주로 MySQL의 Order By 다중 필드 정렬 규칙에 대한 코드 예제를 소개합니다. 편집자는 이 내용이 꽤 좋다고 생각합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
단일 필드별 MySql 정렬
다음과 같이 테스트 테이블을 만듭니다.
CREATE TABLE `a` ( `code` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT into a values('中一', '我'); INSERT into a values('中二', '你'); INSERT into a values('高一', '我是'); INSERT into a values('高二', '我们'); INSERT into a values('高二', '我的');
테스트 문은 다음과 같습니다.
-- hex(): 获取16进制字节码 select name, hex(name) from a order by name desc
결과는 다음과 같습니다:
name | hex(이름) |
my | E68891E79A84 |
나는 | E68891E698AF |
us | E68891E4 BBAC |
me | E68891 |
you | E4BDA0 |
분명히 MySQL의 정렬은 바이트코드를 기반으로 합니다. 첫 번째 단어가 동일하면 두 번째 단어의 바이트코드를 비교하는 식입니다.
MySql은 다중 필드순으로 정렬됩니다.
-- 按照name进行降序排序 select * from a order by name desc; -- 按照code进行降序排序 select * from a order by code desc;
name | |
My | |
나는 | |
우리 | |
I | |
너 |
이름 | |
us | |
My | |
나는 | |
너 | |
I |
-- 按照code, name进行降序排序 select * from a order by code, name desc;
name | |
I | |
너 | |
저는 | |
my | |
we |
-- 按照code, name进行降序排序 select * from a order by code desc, name desc; -- 该语句的效果等同于下面的语句, 其中1、2分别对应的是code、name select code, name from a order by 1 desc, 2 desc;
name | |
my | |
us | |
I am | |
You | |
Me |
select * from a order by concat(code,name) desc
name | |
my | |
우리 | |
나는 | |
you | |
I |
위 내용은 MySQL의 Order By 다중 필드 정렬 규칙에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!