MYSQLがより典型的な2つの等号の代わりに条件文で1つの等号を使用するのはなぜでしょうか。このための技術的/歴史的な理由はありますか?ありがとう。MYSQLの等しいです
5
A
答えて
7
こんにちは、私は、より典型的な2つの等号の代わりに、条件文でMYSQLが単一の等号を使用するのはなぜだろうかと思いました。このための技術的/歴史的な理由はありますか?ありがとう。
SQL
では、割り当てがより一般的です。
だからこそ、SQL
は、より一般的なことを行うために短い構文を使用しています。古典SQL
で
、比較は、一人のオペレータが両方の操作に使用することができる理由だと、(割り当てのみUPDATE
ステートメントのSET
句であることができる)コンテキストによって割り当てと区別することができます。 SQL
へMySQL
の延長で
、セッション変数への代入は、SQLでの曖昧さのためのケースは決してありません:=
7
5
で表されます。 C.J.Date(1987版)、割り当てのため=
によってSQL標準元のAガイドで
のみUPDATE
のSET
句で使用されています。それ以外の場合は=
が使用され、比較のために使用されます。
しかし、C/C++/C#/ Javaなどの他の言語では、=
を代入として使用できますが、値も返します。したがって、a = b
は、「と等しく、そしてa
を返す」という意味を意味し、一方、a == b
は、「true
」と「a
とb
が等しい場合に返す」を意味します。 (if (a = b)
とif (a == b)
が両方とも有効であるため、結果がブール値である必要はありませんので、これは、Cプログラムでは非常に一般的なバグにつながる。)
のJavaScript/ECMAScriptのようないくつかの言語はまた、第三のタイプとして===
を紹介比較の。これらの言語では、==
は「同じ型に変換して比較する」ことを意味しますが、===
は「同じ型と同じ値である場合にのみtrue
を返します」という意味です。
関連する問題
- 1. MySQL連鎖不等式
SQLはIngresのQUELから進化しませんでした。 QUELは、おそらく何らかの点で優れた設計であったにもかかわらず、SQLに取って代わりました。 – lavinio
@lavinio:正しい、その部分を削除しました。 – Quassnoi