ホームページ  >  記事  >  バックエンド開発  >  間違った mysql クエリ結果

間違った mysql クエリ結果

WBOY
WBOYオリジナル
2016-07-06 13:51:351053ブラウズ

間違った mysql クエリ結果

ほとんどの注文クエリは最初の SQL ステートメント クエリに従ってクエリされ、注文クエリの結果はすべて一意ですが、この順序になると 2 つのクエリ結果が発生します。その理由は何ですか?通常の状況では、フィールド属性が文字列の場合、値は引用符の有無にかかわらず同じではありませんか? アドバイスをお願いします

最初のSQL文を使用したクエリの結果
間違った mysql クエリ結果

返信内容:

間違った mysql クエリ結果

ほとんどの注文クエリは最初の SQL ステートメント クエリに従ってクエリされ、注文クエリの結果はすべて一意ですが、この順序になると 2 つのクエリ結果が発生します。その理由は何ですか?通常の状況では、フィールド属性が文字列の場合、値は引用符の有無にかかわらず同じではありませんか? アドバイスをお願いします

最初のSQL文を使用したクエリの結果
間違った mysql クエリ結果

もちろん違います。数値と varchar を比較する場合、mysql はパスワードの型が文字列でクエリ条件が int の場合は一致します。 show warnings;

クエリの結果を投稿してください。私もとても興味があります

varchar の桁数は何桁ですか? 長さが足りず、次の引用符は自動的に無視されますか?

out_trade_no は間違いなくすべて数字ですよね? 暗黙的な型変換中に値の一部がインターセプトされ、文字列データの場合には余分なデータが生成された可能性があります。不要な抜け穴を避けるために、 type を引用符で囲んで追加する必要があります

varchar を数値に変換するときに切り捨てられる必要があります。

引用符を追加しないと、MySQL は最初にテーブル全体をクエリしてスキャンし、次にクエリ結果を 1 つずつ varchar に変換します。
一重引用符タイプのマッチングを追加し、インデックス スキャンを直接使用します (列にインデックスがある場合)。
そのため、引用符を追加しないとパフォーマンスの問題が発生する可能性もあります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。