SELECT * FROM profile WHERE id IN (1,2,3...)
を使用して、ResultSetですべての結果を取得します。リクエストがDBは多くの時間を要し送っているので、我々はDBを訪問する回数を減らす必要があり、私の知る限り考慮するとしてforeach(int id: ids) {execute(SELECT * FROM profile WHERE id='i')}
どこで(a、b、c ...)またはWHERE = inループですか?
:それは私たちのようなループを記述本質的
SELECT * FROM profile WHERE id='1' OR id='2' OR id='3'...
ですので、最初の方法が優れています。しかし、業界で真実なのかどうかは分かりませんが、より良い解決策があります。私に教えてください、ありがとう:)
セキュリティ上の理由から、実際にはループを使用する必要がありますが、PDOコンテキストで使用する必要があります。 – Strawberry
これは実際にあなたのユースケースに依存します。一般的に、IN()は書くのが簡単で、dbのオーバーヘッドが少ないのは1つの質問だけです。 @Strawberryでは、実際にはPDOのコンテキストでは安全ですが、セキュリティで保護されているかどうかはループであるかどうかは関係ありません。 – marekful
@marekfulよく準備されたステートメントでIN()を使用するのが難しいためですが、巧妙なハックがあることがわかります – Strawberry