• 회원가입
  • 로그인
  • 구글아이디로 로그인

[mysql] Python - MySQL Order By (정렬순서)

2721  

목차

  1. ORDER BY - 결과 정렬
  2. ORDER BY 컬럼명 ASC - 오름차순 정렬 (기본값)
  3. ORDER BY 컬럼명 DESC - 내림차순 정렬
  4. CAST(컬럼명 AS int) - (문자형 → 숫자형) 변환
  5. 컬럼 자체를  (문자형 → 숫자형) 변환

 

ORDER BY - 결과 정렬

 

ORDER BY 컬럼명 ASC

컬럼명 오름차순 기준으로 결과 정렬. 

※ 기본값이라, ASC 안 적어도 됨.

 

ORDER BY 컬럼명 DESC

컬럼명 내림차순 기준으로 결과 정렬.

 

주의: 문자형 (varchar 타입 등)으로 저장된 경우, 숫자형으로 변환 필요.

 

ORDER BY 컬럼명 ASC - 오름차순 정렬 (기본값)

※ 주의: 문자형 그대로 정렬 시도 시, 원하는 순서가 안 될 수 있음.

 

import mysql.connector


mydb = mysql.connector.connect(

  host="localhost",

  user="root",

  password="autoset",

  database="hz"

)


mycursor = mydb.cursor()

sql = "SELECT * FROM hz_member ORDER BY mb_level"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

  print(x)

 

 

[결과값] 

(2, 'AAA', '1')

(1, 'homzzang', '10')

(3, 'BBB', '2')

(4, 'CCC', '2')

(5, 'DDD', '3')

(6, 'EEE', '3')

(7, 'FFF', '3')

(8, 'GGG', '4')

(9, 'HHH', '4')

(10, 'III', '4')

(11, 'JJJ', '4')

(12, 'KKK', '5')

(13, 'LLL', '5')

(14, 'MMM', '5')

(15, 'NNN', '5')

(16, 'OOO', '5') 

 

ORDER BY 컬럼명 DESC - 내림차순 정렬

※ 주의: 문자형 그대로 정렬 시도 시, 원하는 순서가 안 될 수 있음.


import mysql.connector


mydb = mysql.connector.connect(

  host="localhost",

  user="root",

  password="autoset",

  database="hz"

)


mycursor = mydb.cursor()

sql = "SELECT * FROM hz_member ORDER BY mb_level DESC"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

  print(x)

 

 

[결과값] 

(12, 'KKK', '5')

(13, 'LLL', '5')

(14, 'MMM', '5')

(15, 'NNN', '5')

(16, 'OOO', '5')

(8, 'GGG', '4')

(9, 'HHH', '4')

(10, 'III', '4')

(11, 'JJJ', '4')

(5, 'DDD', '3')

(6, 'EEE', '3')

(7, 'FFF', '3')

(3, 'BBB', '2')

(4, 'CCC', '2')

(1, 'homzzang', '10')

(2, 'AAA', '1') 

 

CAST(컬럼명 AS int) - (문자형 → 숫자형) 변환

 

(문자형 → 숫자형) 변환 후, 내림차순 정렬.

ORDER BY CAST(컬럼명 AS int) ASC

 

(문자형 → 숫자형) 변환 후, 내림차순 정렬.

ORDER BY CAST(컬럼명 AS int) DESC

 

주의: 컬럼 자체의 데이터 타입이 바뀐 것은 아님.


[오름차순]

 

import mysql.connector


mydb = mysql.connector.connect(

  host="localhost",

  user="root",

  password="autoset",

  database="hz"

)


mycursor = mydb.cursor()

sql = "SELECT * FROM hz_member ORDER BY CAST(mb_level AS int) ASC"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

  print(x)

 

결과값:

(2, 'AAA', '1')

(3, 'BBB', '2')

(4, 'CCC', '2')

(5, 'DDD', '3')

(6, 'EEE', '3')

(7, 'FFF', '3')

(8, 'GGG', '4')

(9, 'HHH', '4')

(10, 'III', '4')

(11, 'JJJ', '4')

(12, 'KKK', '5')

(13, 'LLL', '5')

(14, 'MMM', '5')

(15, 'NNN', '5')

(16, 'OOO', '5')

(1, 'homzzang', '10')


[내림차순] 

 

import mysql.connector


mydb = mysql.connector.connect(

  host="localhost",

  user="root",

  password="autoset",

  database="hz"

)


mycursor = mydb.cursor()

sql = "SELECT * FROM hz_member ORDER BY CAST(mb_level AS int) DESC"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:

  print(x) 

 

결과값: 

(1, 'homzzang', '10')

(12, 'KKK', '5')

(13, 'LLL', '5')

(14, 'MMM', '5')

(15, 'NNN', '5')

(16, 'OOO', '5')

(8, 'GGG', '4')

(9, 'HHH', '4')

(10, 'III', '4')

(11, 'JJJ', '4')

(5, 'DDD', '3')

(6, 'EEE', '3')

(7, 'FFF', '3')

(3, 'BBB', '2')

(4, 'CCC', '2')

(2, 'AAA', '1')

 

 

PS.

컬럼 자체를  (문자형 → 숫자형) 변환

 

처음 mb_level 필드 타입을 VARCHAR로 지정해서 문자형으로 저장.

타입 자체를 숫자로 변경하려면, INT 형 등 숫자 타입으로 컬럼 수정.

 


(예)

 

ALTER TABLE `hz_member` CHANGE `mb_level` `mb_level` INT(4) NULL DEFAULT NULL;

 

 

PS.

Node.js ORDER BY (정렬순서)

https://homzzang.com/b/njs-18



분류 제목
mongodb Python - MongoDB Limit (데이터 출력개수)
module Python - random 모듈 메서드 종류
module Python - random.seed() 메서드 - 난수 생성기 초기화 (= seed메서드 = 시드)
module Python - random.getstate() 메서드 - 난수 생성기 현재 상태 반환. (= getstat…
module Python - random.setstate() 메서드 - 난수 생성기 상태 복원. (= setstate메서…
module Python - random.getrandbits() 메서드 ★ - 지정 bit 크기의 정수 반환. (= g…
module Python - random.randrange() 메서드 ★★ - 지정 범위 안에서 정수형 난수 반환. (=…
module Python - random.randint() 메서드 ★★ - 지정 범위 안 int형 난수 생성. (= ra…
module Python - random.choice() 메서드 ★★ - 요소 랜덤 반환. (= choice메서드 = 초…
module Python - random.choices() 메서드 - 가중치 반영해 랜덤 요소 반환. (= choices…
module Python - random.shuffle() 메서드 ★★ - 요소 순서 뒤섞기. (= 순서 랜덤 = shu…
module Python - random.sample() 메서드 ★ - 일부 요소 랜덤 선택. (= sample메서드 =…
module Python - random.random() 메서드 ★ - 0 ~ 1 사이 부동소수 랜덤 반환. (= ran…
module Python - random.uniform() 메서드 ★ - 지정 범위 안 랜덤 부동소수 반환. (= uni…
module Python - random.triangular() 메서드 - 지정 범위 안 가중치 반영 랜덤 부동소수 반환…
module Python - random.betavariate() 메서드 △ - 베타분포 (통계용) 기반 0~1 사이 랜…
module Python - random.expovariate() 메서드 △ - 지수분포 (통계용) 기반 랜덤 부동소수 …
module Python - random.gammavariate() 메서드 △ - 감마분포 (통계용) 기반 랜덤 부동소수…
module Python - random.gauss() 메서드 △ - 가우스분포 (확률이론용) 기반 랜덤 부동소수 반환.
module Python - random.lognormvariate() 메서드 △ - 로그정규분포 (확률이론용) 기반 랜…
4/24
목록
찾아주셔서 감사합니다. Since 2012