Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL 선택 순서는 문자열(숫자가 아님)처럼 작동합니까?

<시간/>

열에 varchar 데이터 유형이 있는 경우 다음 구문을 사용할 수 있습니다. -

select yourColumnName FROM yourTableName ORDER BY yourColumnName +0 DESC;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> create table selectOrderdemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(100), -> RankNumber varchar(100) -> );Query OK, 영향을 받는 행 0개(0.55초) 

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into selectOrderdemo(Name,RankNumber) values('Larry',-100);Query OK, 1개 행 영향(0.23초)mysql> selectOrderdemo(Name,RankNumber) values('John',50 );쿼리 OK, 1행 영향(0.13초)mysql> selectOrderdemo(Name,RankNumber) values('Bob',0)에 삽입;Query OK, 1행 영향(0.14초)mysql> selectOrderdemo(Name,RankNumber에 삽입 ) values('Carol',-110);Query OK, 1개의 row가 영향을 받음(0.23초)mysql> insert into selectOrderdemo(Name,RankNumber) values('David',98);Query OK, 1개의 row가 영향을 받음(0.21sec 

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from selectOrderdemo;

다음은 출력입니다 -

+----+-------+------------+| 아이디 | 이름 | 순위 번호 |+----+-------+------------+| 1 | 래리 | -100 || 2 | 존 | 50 || 3 | 밥 | 0 || 4 | 캐롤 | -110 || 5 | 데이비드 | 98 |+-+-------+------------+5행 세트(0.00초)

숫자와 같은 역할을 하는 순서를 선택하는 쿼리입니다.

사례 1 − 결과를 내림차순으로 원할 경우 쿼리는 다음과 같습니다. −

mysql> selectOrderdemo ORDER BY RankNumber+0 DESC에서 RankNumber 선택;

다음은 출력입니다 -

+------------+| 순위 번호 |+------------+| 98 || 50 || 0 || -100 || -110 |+------------+5행 세트(0.00초)

사례 2 − 결과를 오름차순으로 원할 경우 쿼리는 다음과 같습니다. −

mysql> selectOrderdemo ORDER BY RankNumber+0에서 RankNumber 선택,

다음은 출력입니다 -

+------------+| 순위 번호 |+------------+| -110 || -100 || 0 || 50 || 98 |+------------+5행 세트(0.00초)

사례 3 − 모든 열을 원하면 아래 쿼리를 사용하십시오. −

mysql> select * FROM selectOrderdemo ORDER BY RankNumber+0 DESC;

다음은 출력입니다 -

+----+-------+------------+| 아이디 | 이름 | 순위 번호 |+----+-------+------------+| 5 | 데이비드 | 98 || 2 | 존 | 50 || 3 | 밥 | 0 || 1 | 래리 | -100 || 4 | 캐롤 | -110 |+----+-------+------------+5행 세트(0.00초)