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

특정 문자열로 MySQL 주문?

<시간/>

FIELD() 함수를 사용하여 원하는 문자열을 선택하여 정렬합니다. 구문은 다음과 같습니다 -

SELECT *FROM yourTableNameORDER BY FIELD(yourColumnName,'yourValue1', 'yourValue2','yourValue3',...N);

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

mysql> 테이블 OrderByListOfStrings 생성 -> ( -> Id int not null auto_increment, -> CarName varchar(20), -> PRIMARY KEY(Id) -> );쿼리 OK, 영향을 받는 행 0개(0.68초) 

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

mysql> insert into OrderByListOfStrings(CarName) values('Ford');Query OK, 1행 영향(0.18초)mysql> insert into OrderByListOfStrings(CarName) values('Audi');Query OK, 1행 영향( 0.17초)mysql> Insert into OrderByListOfStrings(CarName) values('Honda');Query OK, 영향을 받는 1개 행(0.13초)mysql> OrderByListOfStrings(CarName) values에 삽입('Aston Martin');Query OK, 영향을 받는 1개 행 (0.53초)mysql> Insert into OrderByListOfStrings(CarName) values('Bugatti');Query OK, 1개의 행이 영향을 받았습니다(0.20초)mysql> insert into OrderByListOfStrings(CarName) values('BMW');Query OK, 1개의 행이 영향을 받았습니다. (0.21초)

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

mysql> 선택 *from OrderByListOfStrings;

다음은 출력입니다 -

+----+--------------+| 아이디 | 자동차 이름 |+----+--------------+| 1 | 포드 || 2 | 아우디 || 3 | 혼다 || 4 | 애스턴 마틴 || 5 | 부가티 || 6 | BMW |+----+--------------+6줄 세트(0.00초)

다음은 문자열을 선택하여 순서를 가져오는 쿼리입니다. 원하는 순서대로 설정하세요 -

mysql> select *from OrderByListOfStrings -> 필드별 주문(CarName,'Bugatti','BMW','Audi','Aston Martin','Ford','Honda');

다음은 field() 메서드로 설정한 문자열을 재배열한 출력입니다. -

+----+--------------+| 아이디 | 자동차 이름 |+----+--------------+| 5 | 부가티 || 6 | BMW || 2 | 아우디 || 4 | 애스턴 마틴 || 1 | 포드 || 3 | Honda |+----+--------------+6줄 세트(0.00초)