β μ½λμ λ―Ένμ μ€μ€λ‘ ν°λν μλ μμ§λ§ λ€λ₯Έ μ¬λλ€λ μ½κ² λ°°μΈ μ μμΌλ¦¬λΌ μ°©κ°νμ§ λ§λΌ. β
- κ°λ°μ μλ΄(Programmerβs Proverbs)

νμ κ°μ λ³ν
MySQLμ λΉκ΅λ κ²μμ μνν λ λ°μ΄ν°μ νμ μ΄ μλ‘ λ€λ₯Ό κ²½μ°, λ΄λΆμ μΌλ‘ νμ μ΄ κ°μμ§λλ‘ μλ λ³ννμ¬ μ²λ¦¬ν©λλ€.
νμ§λ§ μ¬μ©μκ° λͺ μμ μΌλ‘ νμ μ λ³νν μ μλλ‘ λ€μν μ°μ°μμ ν¨μλ κ°μ΄ μ 곡νκ³ μμ΅λλ€.
β
μμμ μΈ νλ³ν
- λ¬Έμμ΄μ΄μ΄λ ν©μΉλ©΄ μ«μλ‘ λ³ν
select '100' + '200';
select concat('100','200');
select concat(100,'200');
select 1 > '2mega';
select 3> '2mega';
select 0 = 'mega2';
BINARY
BINARY μ°μ°μλ λ€μ μ€λ λ¬Έμμ΄μ λ°μ΄λ리 λ¬Έμμ΄λ‘ λ³νν©λλ€.
BINARY μ°μ°μλ₯Ό μ΄μ©νλ©΄ λ¬Έμκ° μλ λ°μ΄νΈλ₯Ό κΈ°μ€μΌλ‘ νμ¬ λΉκ΅λ κ²μ μμ μ μνν μ μμ΅λλ€.
SELECT BINARY 'a' = 'A'; -- false
SELECT 'a' = 'A'; -- true
μμ μμ μ²λΌ BINARY μ°μ°μλ₯Ό μ΄μ©νλ©΄, λΉκ΅νλ €λ λ¬Έμμ λ°μ΄νΈ κ°μ λΉκ΅ν©λλ€.
λ°λΌμ λ¬Έμ 'a'μ 'A'κ° μλ‘ λ€λ₯Έ κ°μΌλ‘ μΈμλ©λλ€.
CAST
CAST() ν¨μλ μΈμλ‘ μ λ¬λ°μ κ°μ λͺ μλ νμ μΌλ‘ λ³ννμ¬ λ°νν©λλ€.
μ΄λ λ³ννκ³ μ νλ νμ μ AS μ μ μ΄μ©νμ¬ μ§μ λͺ μν μ μμ΅λλ€.
CAST(expr AS type)
AS μ μμ μ¬μ©ν μ μλ νμ μ λ€μκ³Ό κ°μ΅λλ€.
- BINARY
- CHAR
- DATE
- DATETIME
- TIME
- DECIMAL
- JSON (MySQL 5.7.8λΆν° μ 곡λ¨)
- NCHAR
- SIGNED [INTEGER]
- UNSIGNED [INTEGER]
SELECT 4 / '2',
4 / 2,
4 / CAST('2' AS UNSIGNED);
/*
μ€ν κ²°κ³Ό
2
2.0000
2.0000
*/
CONVERT
CONVERT() ν¨μλ CAST() ν¨μμ²λΌ μΈμλ‘ μ λ¬λ°μ κ°μ λͺ μλ νμ μΌλ‘ λ³ννμ¬ λ°νν©λλ€.
CONVERT() ν¨μλ λ λ²μ§Έ μΈμλ‘ λ³ννκ³ μ νλ νμ μ μ§μ μ λ¬ν μ μμ΅λλ€.
CONVERT(expr, type) == CAST(expr as type)
CONVERT(expr USING transcoding_name)
USING μ μ μλ‘ λ€λ₯Έ λ¬Έμμ (character set) κ°μ λ°μ΄ν° λ³νμ μν΄ μ¬μ©λ©λλ€.
μ΄λ μ¬μ©ν μ μλ νμ μ CAST() ν¨μμ κ°μ΅λλ€.
SELECT CONVERT('abc' USING utf8);
μ΄ κΈμ΄ μ’μΌμ ¨λ€λ©΄ ꡬλ & μ’μμ
μ¬λ¬λΆμ ꡬλ
κ³Ό μ’μμλ
μ μμκ² ν° νμ΄ λ©λλ€.