본문 바로가기
Programming/DB

[Mysql, MaridaDB] LPAD, RPAD 사용 방법

by 배고프당 2020. 11. 26.
728x90

test_db 데이터베이스 안에 test라는 테이블이 있다고 하자..

데이터는 아래와 같다.

orderbyTest(칼럼명)
0
20
14
4
5
91
test@test.com

아무생각 없이 그냥 order by 절로 정렬을 하려고 했으나...? 원하는 대로 나오질 않는다.

SELECT * FROM test_db.test ORDER by orderbyTest;
# 0
# 14
# 20
# 4
# 5
# 91
# test@test.com

뒤에 * 1로 orderby 를 했더니 숫자들은 정렬이 되었지만 제일 아래에 있던 문자형태의 값이 중간으로 나와버린다.

SELECT * FROM test_db.test ORDER by orderbyTest * 1;
# 0
# test@test.com
# 4
# 5
# 14
# 20
# 91

그러다가 mysql 문법중에 LPAD, RPAD라는게 있다는걸 발견하였다.

* LPAD : 왼쪽에 자신이 지정한 특정 문자를 원하는 자리수만큼 넣어준다.

* RPAD: 오른쪽에 자신이 지정한 특정 문자를 원하는 자리수만큼 넣어준다.

 

* 사용 방법 : (원본 문자, 원하는 자리수, 채울 문자열)

SELECT LPAD('TEST',10,'0') FROM test;

# 0000000TEST
SELECT RPAD('TEST',10,'0') FROM test;

# TEST000000

이걸 응용하여 order by할때 LPAD로 0의 숫자를 채워넣어 정렬이 되도록 수정하였더니 원하는 결과대로 잘나온다.

SELECT * FROM test_db.test ORDER BY LPAD(orderbyTest, 10, '0');

# 0
# 4
# 5
# 14
# 20
# 91
# test@test.com
728x90

'Programming > DB' 카테고리의 다른 글

Mysql Drop multiple database 방법  (0) 2019.12.16

댓글