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

2016/04/22 19:17 by hiro_y hiro_y
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
PostgreSQLで気を付けること(随時追記) #dev #postgresql
随時追記しますよ〜

## boolean型のorder by

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

## 文字配列型の列で検索

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

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

随時追記しますよ〜

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;