[MySQL] WHERE 절의 IN 조건이 비어 있으면

  WHERE 절에서 아래와 같이 OR를 여러 번 쓰며 같은 변수를 다루는 조건문들을

... WHERE id = 1 OR id = 15 OR id = 52 OR id = 101 ...;
IN 연산자를 써서 간단하게 나타낼 수 있다.
... WHERE id IN (1, 15, 52, 101) ...;

  IN을 쓰는 방법은 OR를 쓰는 방법보다 간결하고 처리 속도도 빠르다. IN 조건에 아래처럼 SELECT 문이 들어가는 버금물음(서브쿼리)을 넣을 수도 있다.

... WHERE id IN (SELECT entry FROM itemlist WHERE entry < 100) ...;

  하지만 아래처럼 IN 조건 안이 빈 SQL 문장을 실행하면 오류가 일어난다.

... WHERE id IN ( ) ...;

  만약 MySQL을 이용하는 PHP 프로그램에서 IN 연산자의 조건을 채우지 않는 실수를 했다면, 아래와 비슷한 PHP 오류문이 나올 수 있다.

PHP Fatal error:  Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '...' at line 1 in /.../...php:259

2022/09/07 02:50 2022/09/07 02:50
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요