mysql에서는 SELECT 문을 사용하여 쿼리 결과에 일련번호를 추가하는 사용자 변수를 정의할 수 있습니다. 구문은 "SELECT field 1, field 2, (@i:=@i+1) AS 'serial number'입니다. FROM 테이블 이름, (SELECT @ i:=0) AS itable;".
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
일반적인 해결책은 사용자 변수를 정의하여 일련 번호를 생성하는 것입니다
예: 데이터베이스에 학생 테이블이 있다고 가정합니다.
테이블에 sid, sname, 성별 필드가 있습니다. , age
Query 테이블의 데이터에 일련 번호가 추가되고 해당 SQL은
SELECT sid,sname,gender,age,(@i:=@i+1) AS '序号' FROM student,(SELECT @i:=0) AS itable;
또는
SET @i=0; SELECT sid,sname,gender,age,@i:=@i+1 AS '序号' FROM student;
입니다. 쿼리 결과는 그림과 같습니다.
설명:
1, (@i:=@i+1 )은 시각적으로 명확하게 하기 위해 @i:=@i+1로 작성할 수도 있습니다.
즉, 변수 i에 1을 더하고 변수 i에 할당합니다. 변수를 정의한 후 쿼리할 때마다 변수가 증가합니다. 쿼리를 실행할 때마다 이 변수가 증가할 필요가 없습니다.
2. (SELECT @i:=0) AS itable, 사용자 변수 i를 정의하고 초기 값을 0으로 설정한 다음 이를 파생 테이블로 사용합니다.
3.SET @i=0. 사용자 변수 i를 정의하고 초기값을 0으로 할당합니다.
관련 지식 포인트:
1. MySQL이 사용자 변수를 정의하는 방법: @variable 이름을 선택합니다. 위의 SQL 문에서 변수 이름은 i
입니다. 2. 사용자 변수 할당: 하나는 "=" 기호를 직접 사용하는 것이고, 다른 하나는 ":=" 기호를 사용하는 것입니다.
=과 :=의 차이점:
set 명령을 사용하여 사용자 변수에 값을 할당할 때 두 가지 방법을 모두 사용할 수 있습니다.
즉: SET @variable name=xxx 또는 SET @variable name:= xxx
use select 문에서 사용자 변수에 값을 지정할 때는 ":=" 메소드만 사용할 수 있는데, 이는 select 문에서 "=" 기호가 비교 연산자로 간주되기 때문입니다. 즉, SELECT @변수 이름:=xxx
1: 사용자 변수
②: 파생 테이블
3: AS 설정 별칭
Oracle을 사용하여 작성 방법:
SELECT "sid","sname","gender","age", ROW_NUMBER() over(order by "sid") AS "序号" FROM "user";
추천 학습: mysql 비디오 튜토리얼
위 내용은 mysql에서 쿼리에 일련번호를 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!