Supabase
のPostgreSQL
を操作できるPostgrestFilterBuilder
の使い方について、わかりづらいところがあったため、そのメモです。
公式ドキュメントは、以下ページです
関数一覧
関数を、メソッドチェーン形式で呼び出すことで、And 条件で検索が可能
等しい(列名 = 値)
.eq(列名, 値);
等しくない(列名 != 値)
.neq(列名, 値);
※列の値がnull
のレコードが取得されなくなる
→ null
のレコードを取得できる様にするには、.neq()
を使用せず、
or("列名.is.null,列名.eq.値")
の様な実装が必要
より大きい(値 < 列名)
.gt(列名, 値)
以上(値 <= 列名)
.gte(列名, 値)
より小さい(列名 < 値)
.lt(列名, 値)
以下(列名 <= 値)
.lte(列名, 値)
パターンに一致(列名 like パターン)
.like(列名, パターン)
列が null(列名 is null)
.is(列名, null)
列がいずれかの値に一致する(列 in (値1,値2)
.in(列名, [値1, 値2])
or 条件(列1 = 値1 or 列2 = 値2)
.or("列1.eq.値1,列2.eq.列2")
※「列名.関数.値」
を,
区切りで記載することで、or
検索ができる
戻り値の型定義
.returns<{typeを設定}>();
→ 実行結果のdata
が<type>
と同じ型になる
→ .select()
で複数件取得する場合は、配列であることを明記すること!
<例> ~.from('table').select('*').returns<{name:string}[]>();