ホームページ  >  記事  >  バックエンド開発  >  PHPで配列をmysqlのクエリ条件として使用する方法を教えてください。配列にxxが含まれています。

PHPで配列をmysqlのクエリ条件として使用する方法を教えてください。配列にxxが含まれています。

WBOY
WBOYオリジナル
2016-06-23 13:31:071186ブラウズ

当初は配列 $customerid を分割し、長さを判断して変数の数を判断して、次のような mysql クエリを書こうと考えていましたが、何か良い方法はありますか?

---------------------------------------------
$customerid :

配列 (サイズ = 2)
0 => 文字列 '5' (長さ = 1)
1 => 文字列 '14' (長さ = 2)
------------ ----------------------------------

$customer->where("id in ".$customerid )->count(); //これが意味するものです。 もちろん、ここに配列を直接置くのは間違いです


ディスカッションへの返信 (解決策)

count をカウントする必要があるため、次の mysql ステートメントは 1 つであることが望ましいです。クエリを次々とループするのも良くありません。

foreach ($customerid as &$value) {

}
$ $ count = 0;
$ count = $ count+$ value; )
たとえば、
where("id in ".(3)) には 2 つのレコードがあります
where("id in ".(2)) には 1 つのレコードがあります

実際には、各ユーザーがどの製品を収集しているのか。ユーザーはたくさんのコレクションを持っているかもしれません
それらをまとめた上位 10 件を表示したいのですが、何回結合すればよいのかわかりません。
テーブル構造を変更する最善の方法はありますか?

製品テーブルにユーザー ID を追加しますか?ユーザーはさまざまな製品を収集できますか?このデザインは



できるようです。 最初の質問は、単一の ID をチェックする場合は、id = xx だけで、in を使用する必要はありません。 複数の ID をチェックしたい場合は、implode 関数を使用して、 array into id in (1, 2, 3) この形式の文字列
最後の質問、要件がユーザー リストと各人の上位 10 位のコレクションを同時に出力することである場合、キャッシュを検討する必要があります




毎クール

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。