1

私はmysqlを使用しています。ベクトルのセット内のテーブル(フィールド付きid,field1,field2,field3)から行を選択する必要があります。1つのクエリでそれを行うことは可能ですか?はいの場合、クエリを高速化するためにどのフィールドにインデックスを付ける必要がありますか?そして、このクエリは、シリアルの単純な選択クエリよりも高速/低速ですか?(field1,field2,field3)(v11,v21,v31),(v12,v22,v32),...,(v1N,v2N,v3N)N

前もって感謝します!

4

1 に答える 1

1

次のように複数列のIN比較を行うことができます。

SELECT id,
       field1,
       field2,
       field3
FROM   tbl
WHERE  (field1,field2,field3) IN (
           (v11,v21,v31),
           (v12,v22,v32),
           (v1n,v2n,v3n)
       )

そしてそれは本質的に言っています:

どこ

(field1 = v11 AND field2 = v21 AND field3 = v31) OR
(field1 = v12 AND field2 = v22 AND field3 = v32) OR
...                                              OR
...
于 2012-08-13T07:40:13.880 に答える