아이도리
99
2022-04-06 15:09:35 작성 2022-04-06 15:11:53 수정됨
2
143

mysql 오류 떴는데 어떤 문법 오류일까요?


(1-1)*10 이라는 계산이 mysql에선 안되는걸까요?

전체 쿼리문은 

select iqrPk, iqrCategory,iqrList from question order by iqrPk desc limit (#{pagenum}-1)*#{amount}, #{amount} 

입니다. 어떤게 문제일까요..?

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(1-1)*10,10' at line 3
0
  • 답변 2

  • Rok Sui
    44
    2022-04-06 15:25:15 작성 2022-04-06 15:28:02 수정됨

    MySQL에서 LIMIT절에는 상수 값만 명시할 수 있습니다. 공식 문서를 보면 LIMIT절은 nonnegative integer constant를 인자로 받는다고 명시되어 있어 연산 식은 불가능한 것 같습니다. 

    다른 옵션으로는 prepared statement를 사용할 수 있습니다.

    SET @skip=1; SET @numrows=5;
    PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?, ?';
    EXECUTE STMT USING @skip, @numrows;
  • 아이도리
    99
    2022-04-06 16:31:10
     

       감사합니다ㅠㅠ!! 덕분에 해결했어요
  • 로그인을 하시면 답변을 등록할 수 있습니다.