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

プリペアドステートメントでワイルドカードのように使用する

    プリペアドステートメントのSQL文字列ではなく、値自体に設定する必要があります。

    したがって、これはプレフィックス一致に対して行う必要があります:

    notes = notes
        .replace("!", "!!")
        .replace("%", "!%")
        .replace("_", "!_")
        .replace("[", "![");
    PreparedStatement pstmt = con.prepareStatement(
            "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
    pstmt.setString(1, notes + "%");
    

    またはサフィックス一致:

    pstmt.setString(1, "%" + notes);
    

    またはグローバルマッチ:

    pstmt.setString(1, "%" + notes + "%");
    


    1. TOP n WITH TIESに相当するPostgreSQL:LIMIT with ties?

    2. SQLの行から列へ

    3. 特定のテーブルのMySQLエンジンタイプを確認するにはどうすればよいですか?

    4. node.js postgresqlモジュールを使用する適切な方法は何ですか?