go에서 sql을 사용할 때,in
조건문에 equal
조건문 처럼 배열을 그냥 넣으면 오류가 난다.
arr := []int{1,2,3}
rows, err := sql.QueryContext(
`select id, name
from user
where id in ($1)`, arr)
👇 결과
invalid input syntax for type bigint: \"{1}\"
인수 당 요소 하나를 넣어서 사용해야하기 때문..
arr := []int{1,2,3}
rows, err := sql.QueryContext(
`select id, name
from user
where id in ($1,$2,$3)`, arr[0],arr[1],arr[2])
하지만 이런 방법은 가변적인 배열을 인수로 사용할 경우, 조건문을 사용하기 더욱 복잡해진다.
arr := []int{1,2,3}
rows, err := sql.QueryContext(
`select id, name
from user
where id = any ($1)`, arr)
이런 경우 equal
조건문 처럼, =
기호와 함께 any
를 붙이면 배열을 간단하게 인수로 사용할 수 있다!