Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL ELT() 함수에서 인덱스 번호가 정수가 아닐 때 출력 결과는 무엇일까?

ELT() 함수의 첫 번째 인수는 반드시 정수 값이어야 합니다. 그러나 정수가 아닌 인덱스 번호를 전달하면 MySQL ELT() 함수는 경고(Warning)와 함께 NULL을 반환합니다.

예제

mysql> select ELT('one','Ram,is,good,boy')As Result;
+--------+
| Result |
+--------+
| NULL   |
+--------+
1 row in set, 1 warning (0.00 sec)

mysql> Show Warnings;
+---------+------+------------------------------------------+
| Level   | Code | Message                                        |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: 'one' |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)

결과 분석

위 예제에서 볼 수 있듯이, ELT() 함수의 첫 번째 인수로 문자열 'one'을 전달했기 때문에 최종 결과는 NULL로 반환되었습니다. 이어서 SHOW WARNINGS 명령어를 실행하면 오류 코드 1292번의 경고 메시지, 즉 "Truncated incorrect INTEGER value: 'one'"(잘못된 INTEGER 값 잘림)가 표시됩니다. 이는 MySQL이 문자열 'one'을 정수형 인덱스로 변환하려고 시도했지만 실패했다는 의미입니다.

참고 사항

ELT(N, str1, str2, ...) 형태의 ELT() 함수는 지정된 순번 N에 해당하는 문자열을 반환하는 함수입니다. 따라서 올바른 결과를 얻으려면 첫 번째 인수에 반드시 1 이상의 정수 값을 사용해야 합니다. 예를 들어 ELT(1, 'Ram,is,good,boy')를 실행하면 'Ram,is,good,boy'가 정상적으로 반환됩니다.