sqlc 动态查询方法

   1 min read

在使用 sqlc 时,有时候需要对字段进行动态查询,即字段不为空时,才使用该条件。

这时可以使用 SQL 的 OR 语法来实现,例如:

-- name: ListUser :many
SELECT *
FROM app_user
WHERE ($1::VARCHAR = '' OR $1::VARCHAR ILIKE '%' || $1 || '%')
AND ($2::VARCHAR = '' OR $2::VARCHAR ILIKE '%' || $2 || '%')
AND ($3::VARCHAR = '' OR $3::VARCHAR = $3)
AND id > $4;