Мне было интересно, почему MYSQL использует один знак равенства в условных операторах вместо более типичных двух равнозначных знаков. Есть ли для этого техническая/историческая причина? Благодарю.Single Equals in MYSQL
ответ
Привет, мне было интересно, почему MYSQL использует один знак равенства в условных операторах вместо более типичных двух знаков равенства. Есть ли для этого техническая/историческая причина? Благодарю.
Сравнение гораздо чаще встречается в SQL
, чем при назначении.
Именно поэтому SQL
использует более короткий синтаксис, чтобы делать более распространенные вещи.
В классической SQL
, сравнение можно отличить от уступки по контексту (назначение может быть только в SET
пункте в UPDATE
заявлении), поэтому один оператор может быть использован как для операций.
В расширения MySQL
«s к SQL
, назначение переменной сеанса обозначается :=
Больше похоже на исторический.
Это SQL. Он использовал один знак равенства для сравнения с начала 70-х годов.
Там никогда не случай двусмысленности в SQL.
В оригинальной Руководство к SQL Standard по C.J.Date (1987 издание), =
для назначения используется только в предложении о UPDATE
SET
. Везде, где используется =
, используется для сравнения.
Но на других языках, таких как C/C++/C#/Java, =
может использоваться как назначение, но оно также возвращает значение. Так a = b
означает «установить a
, равный b
и вернуть a
», тогда как a == b
означает «возвращение true
если a
и b
равны». (Это приводит к весьма распространенной ошибки в программах на языке Си, потому что if (a = b)
и if (a == b)
являются действительными, так как результат не должен быть BOOL.)
Некоторые языки, такие как JavaScript/ECMAScript также ввести ===
в качестве третьего типа сравнения. В этих языках ==
означает «конвертировать в тот же тип и сравнивать», тогда как ===
означает «return true
, только если они одного типа и того же значения».
- 1. Inner Join mysql in single table
- 2. Insert, upadate in single Процедура в mysql
- 3. == vs Equals in C#
- 4. Equals Method in Enum Тип
- 5. Scala match in equals метод
- 6. using .Equals() failing in Predicatebuilder
- 7. NPE in line invoking equals()
- 8. MySQL 5.5: лучше ли использовать IN (...) или серию EQUALS-AND?
- 9. IP.Board - Single Sign In in php
- 10. typecast to single in MATLAB
- 11. Bootstrap in Single Page App
- 12. Escape single quotes in title
- 13. Render single block in jade
- 14. Single Line Out in C#
- 15. ffmpeg single quote in drawtext
- 16. MySQL Single Query COUNT
- 17. MySQL pivot single row
- 18. Echo single MySQL field
- 19. git revert on single lines in single file of commit
- 20. oprating on single single quote in javascript и html
- 21. Mysql single table very slow
- 22. StringBuilder Equals in C# и Java
- 23. SequenceEqual in Equals делает GetHashCode сломанным
- 24. sql statement with equals vs in
- 25. bash mysql insert single qoute
- 26. C# mysql update single row
- 27. mysql single quotation symbol 'or `
- 28. ASP.NET VB Color single Row in Gridview
- 29. Single vs Double quotes in Julia
- 30. Single Inheritance in C# - класс объекта?
SQL не эволюционировал из QUEL. QUEL, хотя, возможно, в некотором смысле лучший дизайн, был вытеснен SQL. – lavinio
@lavinio: правильный, удален эта часть. – Quassnoi