MySQL에는 CONTAINS() 함수가 없습니다. LIKE와 CONCAT(), YEAR(CURDATE())를 조합해 현재 연도가 문자열에 포함되는지 검사합니다.
현재 날짜 확인
mysql> SELECT CURDATE();
+------------+ | CURDATE() | +------------+ | 2019-11-28 | +------------+ 1 row in set (0.00 sec)
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable1803 (
-> Name VARCHAR(20),
-> JoiningYear VARCHAR(20)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1803 VALUES('Chris','2020/2017');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1803 VALUES('David','2017/2018');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1803 VALUES('Adam','2018/2019');
Query OK, 1 row affected (0.00 sec)
데이터 조회
mysql> SELECT * FROM DemoTable1803;
+-------+-------------+ | Name | JoiningYear | +-------+-------------+ | Chris | 2020/2017 | | David | 2017/2018 | | Adam | 2018/2019 | +-------+-------------+ 3 rows in set (0.00 sec)
현재 연도(2019)가 JoiningYear에 포함된 행 조회
mysql> SELECT * FROM DemoTable1803
-> WHERE JoiningYear LIKE CONCAT('%', YEAR(CURDATE()), '%');
+------+-------------+ | Name | JoiningYear | +------+-------------+ | Adam | 2018/2019 | +------+-------------+ 1 row in set (0.00 sec)
해설: YEAR(CURDATE()) → 2019. CONCAT('%', 2019, '%') → '%2019%'. LIKE '%2019%'로 '2019' 포함 여부 검사. '2018/2019'만 매칭. FIND_IN_SET()는 콤마 구분자 전용이므로 여기선 부적합.