0から6,00,000までの値をとるフィールドがあります
このフィールドのデータベースの値は、たとえば5,6,7,8,45,91,92,93,94です。
このフィールドの無料の値と使用済みの値の提案を取得する必要があります
1.USED
最小値=0最大値=94(データベースから)
私はforループを使用します(i = minvalue; i <= maxvalue; i ++)この場合、ループは94回実行され、データベースエントリ(5,6,7,45..94)と一致するかどうかをチェックするたびに実行されます。
使用値のような出力範囲を出力
します:5〜8
45 91〜94
値が少ないため、高速に動作します。データベースに490000のようなエントリが1つでもあった場合、ループは非常に長い間実行されていたでしょう。
2.FREE
最小値=0最大値=600000(フィールド定義から)
ここでも同じforループの概念があるので、ループは5lac回実行されます。そして、出力が来ることはありません。時間がかかりすぎます。
Free値のような出力が必要です:
0〜4
9〜44
46〜90
95-600000
forループの実行を減らす方法や他のロジックを使用する方法はありますか?