当初は配列 $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 位のコレクションを同時に出力することである場合、キャッシュを検討する必要があります
毎クール