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

エントリごとのLIKE一致の数をカウントします

    MySQLでは、ブール式を整数として使用できます。0はfalse、1はtrueです。したがって、次のように機能します。

    SELECT p.*,
           ((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
    FROM   myprods p
    WHERE  name LIKE '%samsung%' OR name LIKE '%galaxy%' OR name LIKE '%s4%';
    

    編集:

    MySQLの場合、このクエリを次のように表現することもできます:

    SELECT p.*,
           ((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
    FROM   myprods p
    HAVING hits > 0;
    

    havingの使用 このコンテキストではSQL拡張機能であり、他のデータベースでは機能しません。ただし、サブクエリを使用せずに、クエリでフィルタリング用の列エイリアスを参照することはできます。




    1. リンクテーブルに基づいてrowNameを出力するにはどうすればよいですか?

    2. 期待される結果を得るためにクエリまたは他のクエリを変更するのを手伝ってもらえますか

    3. Oracle Fusion Middleware / WebLogicServer11gのインストール

    4. MySQLの概念:セッションと接続