[SQL] MySQL의 쿼리에 일련 번호를 생성
SQLMySQL의 쿼리에 일련 번호를 생성
나는 테이블이 있습니다 student_marks를
marks
-----
44
55
64
98
76
예상 출력 :
serial_number|marks
--------------------
1 | 44
2 | 55
3 | 64
4 | 98
5 | 76
MySQL의 사용자 정의 변수를 사용하여,이 쿼리를 사용하여 수행 할 수 있습니다 :
set @a:=0;select @a:=@a+1 serial_number, marks from student_marks;
사용자 정의 변수를 사용하지 않고 MySQL의에이를 수있는 방법이 있습니까?
해결법
-
==============================
1.다음을 사용할 수 inializing 2 개 쿼리를 피하기 위해 원하는대로 사용자 정의 변수를 사용하는 한 그것을 사용하고자하지에 대한 귀하의 이유에 기반 :
다음을 사용할 수 inializing 2 개 쿼리를 피하기 위해 원하는대로 사용자 정의 변수를 사용하는 한 그것을 사용하고자하지에 대한 귀하의 이유에 기반 :
SELECT @a:=@a+1 serial_number, marks FROM student_marks, (SELECT @a:= 0) AS a;
-
==============================
2.이 질문에 대한 우수 답변은 다음, 가장 좋은 방법이어야한다
이 질문에 대한 우수 답변은 다음, 가장 좋은 방법이어야한다
SET @count:=0; SELECT (@count:=@count+1) AS serial_number, marks FROM student_marks
-
==============================
3.나는 숫자 X를 포함, 나는 시간의 같은 행 X 숫자를 반복하여 SQL 식을 필요로 한 열 (C5)와 테이블을했다 :
나는 숫자 X를 포함, 나는 시간의 같은 행 X 숫자를 반복하여 SQL 식을 필요로 한 열 (C5)와 테이블을했다 :
내 테이블 A에는 다음이 포함됩니다
c1 c2 c3 c4 c5 16 1 2 16 3 16 1 2 17 2 16 1 2 18 1
나는이 필요합니다
c1 c2 c3 c4 c5 n 16 1 2 16 3 1 16 1 2 16 3 2 16 1 2 16 3 3 16 1 2 17 2 1 16 1 2 17 2 2 16 1 2 18 1 1
나는 표현과 그 해결 :
SELECT c1, c2, c3, c4, c5, row_number AS n FROM ( SELECT @curRow := @curRow + 1 AS row_number FROM tablea JOIN (SELECT @curRow := 0) r WHERE @curRow < ( SELECT max(field1) FROM tablea ) ) AS vwtable2 LEFT JOIN tablea d ON vwtable2.row_number <= tablea.field1;
-
==============================
4.아니, 없다. 하지만 당신은 프로그램 측의 SERIAL_NUMBER, 데이터베이스가 아닌면을 생성 할 수 있습니다.
아니, 없다. 하지만 당신은 프로그램 측의 SERIAL_NUMBER, 데이터베이스가 아닌면을 생성 할 수 있습니다.
-
==============================
5.왜 당신은 자동 증가 필드하지 않습니다?
왜 당신은 자동 증가 필드하지 않습니다?
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
-
==============================
6.별도의 질의에 널 (null)로 변수를 초기화 할 필요가로 위의 답변 중 어느 것도 만족스러운 것 같았다.
별도의 질의에 널 (null)로 변수를 초기화 할 필요가로 위의 답변 중 어느 것도 만족스러운 것 같았다.
모든 포괄적 인 솔루션 아래를 올리기 그래서 :
SELECT ROUND(@a:=@a+1,0) sr_num, t.* from (select @a:=0) initvars, your_table t;
-
==============================
7.아니, 당신은이 숫자를 포함하는 열이없는 경우.
아니, 당신은이 숫자를 포함하는 열이없는 경우.
-
==============================
8.아주 늦게 답변, 두 개의 질의를하지 않고 조인 사용하지 않고 서브 쿼리를 사용하지 않고 순차적으로 ID를 생성 비록.
아주 늦게 답변, 두 개의 질의를하지 않고 조인 사용하지 않고 서브 쿼리를 사용하지 않고 순차적으로 ID를 생성 비록.
SELECT *, (@cnt := if(@cnt IS NULL, 0, @cnt) + 1) AS id FROM table_name;
건배
from https://stackoverflow.com/questions/11094466/generate-serial-number-in-mysql-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 는 SQL TIMESTAMP 컬럼에 자바 날짜를 작성하기 전에, JDBC는 데이터베이스 세션 시간대에 JVM 시간대에서 날짜를 변환합니까? (0) | 2020.06.23 |
---|---|
[SQL] 데이터베이스에 가장 가까운을 찾을 수있는 가장 좋은 방법 일 것입니다 무슨 RGB 값을 감안할 때? (0) | 2020.06.23 |
[SQL] 구분 위치에 의해 분할 문자열 오라클 SQL을 사용하여 (0) | 2020.06.23 |
[SQL] 패스에서 PostgreSQL을보기로 ""매개 변수? (0) | 2020.06.23 |
[SQL] 복합 기본 키 : 그것이 좋은지 나쁜지 (0) | 2020.06.23 |