sql >> データベース >  >> RDS >> Mysql

キー値リストに基づいて条件付きでレコードを取得するSQLクエリ

    ここでの課題は、API応答から取得したこれらの値を入力としてSQLステートメントに渡し、入力に基づいて比較を動的に作成しないことで出力を生成する必要があることです。

    これで、より適切なソリューションを提供するよりもバックエンドプラットフォームに精通している場合でも、Node.jsを認識していないため、ソリューションには必要なSQLステートメントと必要な残りの部分のみが含まれます。 DIY。

    最初に行う必要があるのは、このAPI応答を解析し、これらの値をデータ構造に格納することです。

    次に、Temporary tableを作成します Node.jsから入力します これらの入力値をコーディングして、このテーブルに保存します。

      CREATE TEMPORARY TABLE Input (id INT, value INT);
    

    そのデータ構造からこのテーブルにデータを追加します。

    次に、次のクエリを実行すると、必要なものが得られます。

    SELECT skp.quest_id
    FROM SKILL_PREREQUISITES skp 
    GROUP BY quest_id
    HAVING COUNT(skp.quest_id) =
                         ( SELECT COUNT(quest_id)
                           FROM Input i
                           JOIN SKILL_PREREQUISITES sp
                           ON sp.prerequisite_skill_id = i.id
                           AND sp.skill_value <= i.value
                           WHERE skp.quest_id = sp.quest_id
                          )
    

    デモフィドル



    1. Oracleの数値関数(全リスト)

    2. iOSの緯度と経度のphpクエリがxml出力で近くのmysqllatとlonを検索していません

    3. Railsスコープ-完全に一致する場所

    4. phpとmysqlで複数のキーワードを検索します(Xが好きな場合)