- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:forで無限ループになっていないかどうか)
問題なし!アイテムの最新3件だけデータベースに残す方法
このQ&Aのポイント
- PHPのforループを使って、アイテムごとに最新3件だけデータベースに残す方法を実装しました。動作確認も問題なく行われています。
- アイテムの個数が20件の場合、アイテムごとにデータベースでのレコード数を取得し、3件より少ない場合は何もせず、3件以上の場合は古いレコードを削除します。
- この方法では、アイテムごとに最新3件の情報を保持することができます。無限ループなどの問題はありません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
感じからすると、テンポラリに最新3件を抽出して、itemをtruncateし、 テンポラリを戻すのが一番早くて確実だとは思います
その他の回答 (1)
- agunuz
- ベストアンサー率65% (288/438)
回答No.1
item_id を forなんかで回さないで、DBからselectしてくるのはダメなんですか? $sql = "select * from (SELECT item_id, COUNT(id) AS cnt FROM item group by item_id) as item_tbl where cnt > 3"; というか、ネイティブなMySQL関数はすでに非推奨です。いい加減使うのはやめましょう。 http://www.php.net/manual/ja/mysqlinfo.api.choosing.php
お礼
ありがとうございました!