質問: Mysqlのテーブルのレコードをphpで指定した条件で最小限で別々に取得する方法はありませんか? カムラは2つです box nakami A りんご バナナ B キウイ パイナップル C りんご D バナナ パイナップル E バナナ ライチ F りんご みかん このようなテーブルがあったとして条件をりんご、キウイにするとABCFの4つのレコードが取得されますが何か条件などを追加してレコード2つずつABとBCとBFで別々に取得できないかと思って質問しました 修正 「最小限または3つ以下」を「最小限で別々」に修正しました うまく説明できずすいません
回答: こういうことでしょうか? MySQL でなく、 sqlite3 で行っていますが、 SQL 文は同じだと思います。 ``` sqlite> select * from boxes; A|りんご バナナ B|キウイ パイナップル C|りんご D|バナナ パイナップル E|バナナ ライチ F|りんご みかん sqlite> select * from boxes where nakami like "%りんご%" or nakami like "%キウイ%"; A|りんご バナナ B|キウイ パイナップル C|りんご F|りんご みかん sqlite> select * from (select b1.box, b2.box, b1.nakami || ' ' || b2.nakami as nakami from boxes as b1 cross join boxes as b2 where b1.box < b2.box) where nakami like "%りんご%" and nakami like "%キウイ%"; A|B|りんご バナナ キウイ パイナップル B|C|キウイ パイナップル りんご B|F|キウイ パイナップル りんご みかん ``` 最後の SQL は、 box の組み合わせ (同じ箱を2つ選ぶのは除外) をすべて生成し、 その2つの箱の中味をあわせたものが、りんごとキウイを含んでいるものを取り出しています。