イベントのデータベースを検索するために実行しているクエリに問題があります。目的はスポーツに関するもので、構造は次のとおりです。
id_event event_sport event_city
1 10 153
2 12 270
3 09 135
テーブルスポーツは次のようなものです:
sport_id sport_name
1 Basketball
テーブル都市は次のとおりです。
city_id city_name
1 NYC
私のイベントテーブルは次のようになっているため、物事は複雑になります。
id_event event_sport event_city
1 10,12 153,270
2 7,14 135,271
3 8,12 143,80
また、複数入力の検索フォームを用意して、複数のスポーツや複数の都市のイベントを検索できるようにしています。私は選ばれたを使用しています
Chosen からの検索結果は、たとえば次のようになります。
City = 153,270 (if user selected more than one city)
Sport = 12 (if user only selected one sport, can be "9,15")
したがって、ユーザーが複数の値を入力しなかった場合、1 つの値のみを検索できる場合があることを知って、カンマで区切られた同じ列の都市とスポーツの複数の値を検索する必要があります。
私の現在のクエリは次のとおりです。
SELECT * FROM events e
LEFT JOIN cities c ON e.event_city=c.city_id
LEFT JOIN sports s ON e.event_sport=s.sport_id
WHERE FIND_IN_SET('1CITY', e.event_city) AND FIND_IN_SET('1SPORT', e.event_sport)
;
1 つの都市を検索するのは良いことですが、ユーザーが 2 つ以上の都市を検索すると、それを表示する方法がありません。
手伝ってくれませんか?
前もって感謝します。