次のようなMySQLテーブルがあります
id | text | category | active
でランダムな行を選択します
SELECT id, text
FROM table
WHERE category = [category id] AND active = 1
ORDER BY RAND()
LIMIT 1
場合によっては、結果が返されないことがあります (たとえば、特定のカテゴリにアクティブな行がない場合)。その場合に必要なことは、「デフォルト」行を返すことです。
私の質問は、これを行う最も効率的な方法は何ですか? 上記のクエリで結果が得られない場合は、同じテーブルを作成する必要がありますが、デフォルトの行だけを使用してクエリを実行する必要がありますか? または、同じテーブルにデフォルトの行を追加する必要がありますか? そして、どのようにそれを照会しますか?
どんな提案でも大歓迎です!
編集 質問に対するいくつかの更新:
コードを変更せずにカスタマイズできるようにしたいので、PHP でデフォルトのテキストを生成する可能性を除外しています。
カテゴリごとにデフォルトの行があります