그누보드를 sqlite 로 마이그레이션하다가 생긴일이에요. 정보
그누보드를 sqlite 로 마이그레이션하다가 생긴일이에요.본문
sqlite 로 마이그레이션 하다가 메뉴가 안나오길래 클로드에게 물어봤어요.
SELECT * FROM g5_menu
WHERE me_use = '1' and length(me_code) = '2'
ORDER BY me_order, me_id
위 쿼리가 안된다고 했더니 이렇게 해보라고 하더라구요.
SELECT * FROM g5_menu
WHERE me_use = '1' AND me_code IN (
SELECT me_code FROM g5_menu WHERE length(me_code) = 2
)
ORDER BY me_order, me_id
1. SQLite는 WHERE 절에서 직접적으로 함수를 사용하는 것을 제한하고 있습니다.
2. length() 함수는 주로 SELECT 절에서 사용되며, WHERE 절에서는 직접 사용할 수 없습니다.
근데 서브쿼리에서 length함수를 사용하는 방식으로 알려주는거에요.
이상했죠.
그래서 sqlite는 이렇게 해야 하나보다라고 생각했는데
좀 더 생각해보니
length(me_code) = '2'
를 length(me_code) = 2 로 그냥 숫자형태로 하면 되더라구요.
ai가 절대 모른다고 하지 않는거에 당했어요.
추천
1
1
댓글 1개
기본적으로, 따옴표는 문자입니다.
어느 프로그램에서나.. 그렇죠.