限定しりとり

googleのように複数の検索キーワードでmysqlからデータを引っ張ってきて表示したいと思っています。

$keyword1 = "1つ目の検索キーワード";
$keyword2 = "2つ目の検索キーワード";
$keyword3 = "3つ目の検索キーワード";

select * from searchdb where keyword like '%$keyword1%' or keyword like '%$keyword2%' or keyword like '%$keyword3%';

この結果を表示するときに、$keyword1→$keyword2→$keyword3の順番にしたいのですが、実際はsearchdbテーブルに登録された順番で表示されます。

どのようにしたら任意の順番で表示できるでしょうか。

質問者からの補足コメント

  • すみません、もうちょっと具体的な内容にすればよかったです。

    具体的には、複数の色で検索したときに(赤 ピンク 緑など)、その色に関連した商品をずらっと表示したいのですが、その際に検索した色の順番で商品を表示したいと思っています。

    質問がまとまっていなくて申し訳ありません。どうぞよろしくお願いいたします。

      補足日時:2021/02/13 22:38

A 回答 (1件)

mysql は不明ですが



select * ,1 AS ソート from searchdb where keyword like '%$keyword1%'
UNION ALL
select * ,2 AS ソート from searchdb where keyword like '%$keyword2%'
UNION ALL
select * ,3 AS ソート from searchdb where keyword like '%$keyword3%'
ORDER BY ソート;

かな?
    • good
    • 0
この回答へのお礼

どうもありがとうございました。参考にさせていただきます。

お礼日時:2021/02/16 16:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!