Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
22 lines
719 B
SQL
22 lines
719 B
SQL
-- name: GetUsers :many
|
|
SELECT
|
|
users.id,
|
|
users.fname,
|
|
users.lname,
|
|
users.email,
|
|
users.created_at,
|
|
rank_email,
|
|
rank_fname,
|
|
rank_lname,
|
|
similarity
|
|
FROM
|
|
users,
|
|
to_tsvector(users.email || users.fname || users.lname) document,
|
|
to_tsquery(@search_term::TEXT) query,
|
|
NULLIF(ts_rank(to_tsvector(users.email), query), 0) rank_email,
|
|
NULLIF(ts_rank(to_tsvector(users.fname), query), 0) rank_fname,
|
|
NULLIF(ts_rank(to_tsvector(users.lname), query), 0) rank_lname,
|
|
SIMILARITY(@search_term::TEXT, users.email || users.fname || users.lname) similarity
|
|
WHERE query @@ document OR similarity > 0
|
|
ORDER BY rank_email, rank_lname, rank_fname, similarity DESC NULLS LAST;
|