-1

質問をもう一度編集する必要があるようです-これらの反対票はイライラしています... IDの配列とそれを確認するテーブルがあります。これは私が使用するクエリです:

SELECT COUNT(*) FROM orders WHERE order_id IN (...

この数が配列内の ID の数と等しくない場合、私が持っている配列からテーブルに存在しない値を取得する必要があります。一時テーブルを作成してそこから選択するよりも、これを行うためのより最適な方法はありますか?

編集: 最初のクエリに NOT を挿入することを提案するすべての人のために-配列の値と一致しないテーブルのすべての行は必要ありません-配列自体の値が必要です...たとえば、私は3 つの ID の配列 - "1"、"2"、"3"。テーブルには、ID「2」と「3」があります。クエリで配列をチェックします。

SELECT COUNT(*) FROM orders WHERE order_id IN (1,2,3)

このクエリの結果として数値 2 を取得しましたが、これは配列にある ID の数である 3 と一致しません。送信した配列から欠落している ID を取得するクエリが必要です。必要なIDが「1」の場合

4

3 に答える 3

1

OKそれは今明らかです:

次に、次のようなものを作成する必要があります。

select id from order where id IN ( your list )

見つかった値で 2 番目の配列を作成します

次に、php配列関数を使用しますarray_diff

于 2013-11-13T10:48:45.230 に答える