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

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

2447  

목차

  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



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/24
목록
찾아주셔서 감사합니다. Since 2012