2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Spannerで複数キーの値を取得する方法

Last updated at Posted at 2024-07-07

概要

ここではSpannerのSELECT構文で、複数キーを指定する方法を記載します

よりよい書き方があれば指摘していただくとうれしいです!

具体的な方法

キーが一つの場合

この場合はWHEREの条件として値の一覧を渡すだけでよく、特に複雑なことはありません

UNNEST構文を使い取得したい列のキーを配列として渡せばよいです

UNNESTとは配列を渡し展開するための構文で、IN句と組み合わせることで配列を用いた検索が可能になります

https://cloud.google.com/spanner/docs/reference/standard-sql/query-syntax#unnest

WHERE key1 IN UNNEST ("test1", "test2", "test3")

Spannerのベストプラクティスとしてはこちらに記載があります

https://cloud.google.com/spanner/docs/sql-best-practices?hl=ja#optimize-range-lookups

キーが複数の場合

この場合は単純に値を渡すのではなく、key1、key2の組み合わせとして渡す必要があります

SpannerにはWHEREでの条件として構造体(Struct)を使用することができる方法があります

WHERE (key1, key2) IN (("aaa", "bbb"), ("ccc", "ddd"))

https://cloud.google.com/spanner/docs/reference/standard-sql/data-types#struct_type

記載の方法を使用することで簡潔にSQLを実行することが可能です

感想と次

今までDB周りを触ることがなかったですが、とても楽しかったです
また、調査のためにChatGPTが大いに役に立ちました
結構頓珍漢なことも言いますが、詳細に調べる前、大雑把な把握には役立つと思います

次はこの複数主キーを使用する方法をSpring Data Cloudで利用する場合、どのように行うのか記事にしようと思います

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?