PostgreSQLで気を付けること(随時追記) #dev #postgresql

随時追記しますよ〜

boolean型のorder by

boolean型の列を作ってorder by句で使いたい場合、trueの方がfalseより大きいとみなされる。だから例えば、タスクの一覧をSQLで取得するときにスターが付いている(is_starred = true)ものを先に表示したい場合は、order by is_starred descと指定してSQLを組み立てれば先に表示させることができる。

文字配列型の列で検索

「タグ」が保存されている場合など、全部小文字にした上で検索したい場合に。配列の中身を全部小文字にする関数を定義してそれを通す感じにすると便利。

create function array_lower(t text[]) returns text[]
as
$$
select lower($1::text)::text[]
$$ language sql;

END

Close