7.15.12. in_values
¶
7.15.12.1. 概要¶
バージョン 4.0.7 で追加.
in_values
は 複数の OR
や ==
を使っているクエリを簡略化できます。複数の OR
や ==
を使うよりは in_values
を使うのがパフォーマンスの観点からおすすめです。
7.15.12.2. 構文¶
in_values
には2つ以上の引数を指定する必要があります。 target_value
を1つと 1つ以上の value
を指定します。
in_values(target_value, value1, ..., valueN)
7.15.12.3. 使い方¶
使い方を示すために使うスキーマ定義とサンプルデータは以下の通りです。
サンプルスキーマ:
実行例:
table_create Tags TABLE_PAT_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
table_create Memos TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Memos tag COLUMN_SCALAR ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Tags memos_tag COLUMN_INDEX Memos tag
# [[0, 1337566253.89858, 0.000355720520019531], true]
サンプルデータ:
実行例:
load --table Memos
[
{"_key": "Groonga is fast", "tag": "groonga"},
{"_key": "Mroonga is fast", "tag": "mroonga"},
{"_key": "Rroonga is fast", "tag": "rroonga"},
{"_key": "Droonga is fast", "tag": "droonga"},
{"_key": "Groonga is a HTTP server", "tag": "groonga"}
]
# [[0, 1337566253.89858, 0.000355720520019531], 5]
in_values
関数を使って tag
カラムの値が "groonga" 、 "mroonga" あるいは "droonga" であるものを選択する例を示します。
実行例:
select Memos --output_columns _key,tag --filter 'in_values(tag, "groonga", "mroonga", "droonga")' --sort_keys _id
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# [
# [
# [
# 4
# ],
# [
# [
# "_key",
# "ShortText"
# ],
# [
# "tag",
# "ShortText"
# ]
# ],
# [
# "Groonga is fast",
# "groonga"
# ],
# [
# "Mroonga is fast",
# "mroonga"
# ],
# [
# "Droonga is fast",
# "droonga"
# ],
# [
# "Groonga is a HTTP server",
# "groonga"
# ]
# ]
# ]
# ]
クエリを実行すると、"rroonga"を除いた結果を得られます。"rroonga"は in_values
には指定していないからです。
7.15.12.4. 引数¶
二つ以上の引数が必須です。 target_valule
と 1つ以上の value
です。
7.15.12.4.1. target_value
¶
select
対象の table
に指定されたテーブルのカラムを指定します。
7.15.12.4.2. value
¶
選択したいカラムの値を指定します。
7.15.12.5. 戻り値¶
in_values
は対象となるカラムに指定した値が含まれるかを返します。
もし該当するレコードがあれば、 true
を返します。そうでなければ false
を返します。