2017年3月17日金曜日

WHERE句に大量の条件を追加してみた!

SQLiteを使用するWindowsアプリケーションを開発しています。

あるテーブルから条件に合致するデータを取得し、それらに合致するデータをさらに別のテーブルから取得する、ということをやろうとしています。テーブルを結合すればスマートなのでしょうが、それができない事情もあり、2段階で処理します。

最初に取得したデータの件数が10000件近くあり、次のテーブルから取得するために

select * from table where id = 1 or id = 2 or id = 3 ... or id = 10000

のように調子に乗ったクエリを書いていたら、

 
SQL構文エラーまたはデータベースが見つかりません。
Expression tree is too large (maximum depth 1000)


というエラーが発生しました。
WHERE句に指定できる条件の数は999までのようで、1000以上はダメなようです。
仕方がないので、500件ずつ取得するようにしました。

またいつか、どこかで。

0 件のコメント:

コメントを投稿