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

データベース列に存在する文字列を確認する方法は?

    文字列の連結がめちゃくちゃになっている場合は、次のようにする必要があります:(さらに簡略化

    $selDoc="SELECT * FROM documents WHERE 'U".$_SESSION['userId']."' IN (senderID,receiver_id) ORDER BY id DESC";
    

    上記のステートメントを解析すると、次のようになります。

    SELECT * 
    FROM   documents 
    WHERE  'UXX' IN (senderID,receiver_id)  // where XX is the userID
    ORDER  BY id DESC
    

    補足として、クエリはSQL Injectionで脆弱です。 値( s )変数のは外部から来ました。それを防ぐ方法については、以下の記事をご覧ください。 PreparedStatementsを使用する 値を一重引用符で囲むことはできません。



    1. flywaycleanはスケジューラージョブまたはプログラムをドロップしていません

    2. SQL Serverで「datetimeoffset」を「date」に変換します(T-SQLの例)

    3. OracleのSQLクエリで固定数の行をフェッチします

    4. SQLによる単一レコードの変更に基づいて複数のレコードに変更を加える