PHPで入力された複数の検索条件をもとに
1回でDBから結果を抽出するSQLを書いておりまして、
条件のうちひとつだけ取得するように修正したいです。
SQL
1SELECT * 2FROM products 3WHERE name = 検索値段1 and date >= 検索日付1 4OR name = 検索値段2 and date >= 検索日付2 5OR name = 検索値段3 and date >= 検索日付3 6・ 7・ 8・ 9
WHEREの条件は配列をもとにphpで自動生成するようになっています。
name配列 りんご,みかん,バナナ・・・
date配列 2020-01-01,2021-05-05,2019-08-01・・・
欲しい結果
ID name price date 08 りんご 120 2020-01-01 12 みかん 100 2021-05-06 83 バナナ 150 2019-10-03
ですが、現状は結果が複数ある場合があり
ID name price date 08 りんご 120 2020-01-01 09 りんご 120 2020-01-01 12 みかん 100 2021-05-06 83 バナナ 150 2019-10-03
このように出力されてしまいます。
例であげた「りんご」が重複にならないように
結果が重複した場合は、IDが大きいものをひとつだけ取ってくるようにしたいのですが
良い方法はありますでしょうか。
すみませんが、どうぞよろしくお願いします。
やりたいこと(もっと良い方法を探しています。。。)
SQL
1SELECT * 2FROM products 3WHERE name = 検索値段1 and date >= 検索日付1 and IDが最大 4OR name = 検索値段2 and date >= 検索日付2 and IDが最大 5OR name = 検索値段3 and date >= 検索日付3 and IDが最大 6・ 7・ 8・ 9
回答1件
あなたの回答
tips
プレビュー