条件が満たされない場合でも、MySQL クエリはレコードを返します。
SELECT * FROM `orders` WHERE order_id = '10000R'
ここで指定された WHERE 条件に一致するレコードはありません。しかし、MySQl は order_id = 10000 のレコードを返します
引用符内のアルファを無視する WHERE 条件のように見えます。クエリに問題がある場合、またはこれが MySql のバグである場合は、助けてください
条件が満たされない場合でも、MySQL クエリはレコードを返します。
SELECT * FROM `orders` WHERE order_id = '10000R'
ここで指定された WHERE 条件に一致するレコードはありません。しかし、MySQl は order_id = 10000 のレコードを返します
引用符内のアルファを無視する WHERE 条件のように見えます。クエリに問題がある場合、またはこれが MySql のバグである場合は、助けてください
私はそれが であり、MySql が列のデータ型に一致するように varchar を暗黙的にキャストしていると仮定してorder_id
いint
ます。'10000R'
これにより、末尾の が削除され'r'
ます。
MySql ドキュメントの「式の評価における型変換」を参照してください。
order_id はおそらく何らかのタイプの整数フィールドです。MySQL は文字列 '1000R' を整数 1000 にキャストします。そのため、結果が返されます。バグではありません。
order_id フィールドが整数またはその他の数値フィールドでないことを確認してください。そうである場合、末尾のアルファを無視している可能性があります。
MySql テーブルのデータ型は VARCHAR です。データ型を変更してください。