SQL35 데이터 타입 바꾸기 CAST() SQL에서 숫자를 정렬할 때, 만약 int가 아닌 text타입이라면 아래와 같이 우리가 원하는 것처럼 되지 않는다. 물론 처음부터 데이터 타입을 바꿔줘도 되지만, 임시로 데이터 타입을 바꿔주려는 경우 CAST() 를 쓰면 된다. 1 2 SELECT data FROM copang_main.ordering_test ORDER BY CAST(data AS signed) ASC; cs 위에서 signed 타입은 양수와 음수를 포함한 모든 정수를 나타내는 데이터 타입이다. 만약 소수점이 들어있다면 decimal을 사용하면 된다. 2021. 1. 22. 대소문자 구분하여 조회하기 MySQL에서 기본설정은 대소문자를 구분하지 않는다. 그렇다면 대소문자를 구분해서 조회를 어떻게 할 수 있는가? 답은 BINARY 구문을 사용하는 것이다. 아래와 같이 조회하면 소문자 g 가 들어간 문자열만 찾아준다. 1 SELECT * FROM test WHERE sentence LIKE BINARY '%g%'; cs 대문자의 경우 아래와 같이 BINARY 구문 뒤에 대문자를 넣어주기만 하면 된다. 1 SELECT * FROM test WHERE sentence LIKE BINARY '%G%'; cs 2021. 1. 22. Escaping 문자열 조회 Escaping이란? 문자열 패턴 매칭을 위해 사용했던 '%', '_' 등의 기호들이 데이터 행 안에 문자열로 존재하여 이를 조건화하여 조회할 때 일반 문자처럼 취급하는 것을 말한다. 해결방법은? 조건식에 역슬래쉬를 붙히는 것이다. 예를 들어 문자열 '%'가 들어간 문장을 찾고 싶다면 아래와 같이 입력하면 된다. 1 SELECT * FROM test WHERE sentence LIKE '%\%%'; cs '%\%%' 을 자세히 설명하자면, 첫번 째 % 은 앞에 다른 문자열들이 존재하고(없어도 됨), \% 은 '%'이라는 문자열을 표현하고, 마지막 %은 뒤에 다른 문자열들이 존재하는 경우(없어도 됨)를 말한다. EX) 큰따옴표 조회 1 SELECT * FROM test WHERE sentence LIKE .. 2021. 1. 22. MySQL 주의사항 MySQL을 사용하면서 에러나 주의사항들을 적어놓으려고 합니다. 1. MySQL에서는 0을 제외한 나머지 숫자는 True라고 판단합니다. 따라서 아래와 같은 조회를 하면 2는 TRUE라고 판단하여 모든 행이 조회됩니다. 1 SELECT * FROM copang_main.member WHERE id = 1 OR 2; cs 2. MySQL에서는 AND 구문이 OR 구문보다 우선시 됩니다. 따라서 적절히 괄호를 잘 써줘야 올바르게 조회할 수 있습니다. 3. 정렬을 할 때 WHERE절과 ORDER BY 절을 같이 쓰려면 WHERE문을 먼저 써야 합니다. 1 2 3 4 SELECT * FROM copang_main.member WHERE gender = 'm' AND weight >= 70 ORDER BY hei.. 2021. 1. 21. 이전 1 ··· 4 5 6 7 8 9 다음