스파르타/TIP
MYSQL 소소한 팁
DDG
2023. 11. 28. 15:36
- MYSQL에서는 ISNULL을 못쓴다
- 코딩테스트 연습을 하는 와중에 책에서 배운 ISNULL을 쓰면 되는데 자꾸 오류가 나서
구글에 검색해 보니 IFNULL을 써야 MYSQL에서 작동한다
- 코딩테스트 연습을 하는 와중에 책에서 배운 ISNULL을 쓰면 되는데 자꾸 오류가 나서
- 날짜의 차이를 구하는 함수 : datediff()
- select문에서 날짜 두개 써서 -로 하고 있으면 절대 안나온다
- 현재의 시간을 구하는 함수 : now()
- datediff( now() , 뺴 줄 날짜) = 날짜의 차이를 구할 수 있다
- IN과 REGEXP
- IN은 다중연산자로 OR의 의미를 가지고 있다
그래서 문제였던 '자동차 종류별 특정 옵션이 포함된 자동차 수 구하기'의 조건을 구하는 와중
자꾸 빈 공백의 데이터만 출력이 되었다.
분명 내가 아는 것이 맞고 조건도 맞게 썼는데 왜 안 나오지?라는 생각만 가득이었다
결국 질문하기 칸을 눌렀고 답을 알아냈다.
문제의 조건은 다음과 같다. - CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해 주세요.
IN 연산자는 조건이 정확히 일치하는 것들을 반환한다. 즉 저 3개의 조건만 일치해야지 답이 나온다
여러 가지 옵션 중 저 3개의 답만 있는 경우에만 나오는 것이라서 이럴 때에는 IN과 비슷하지만 더욱
엄청난 녀석을 써야 한다. - REGEXP라는 regular expression 정규 표현식이다.
- IN보다 복잡한 조건으로 검색을 할 수 있다.
- 나도 오늘 배운 거라서 잘 모르기 때문에 구글에 쳐서 검색해 볼 것.
- IN은 다중연산자로 OR의 의미를 가지고 있다