Единственный равняется в MySQL

import re,datetime
s="2008-09-03T20:56:35.450686Z"
d=datetime.datetime(*map(int, re.split('[^\d]', s)[:-1]))
7
задан Anon 15 July 2009 в 17:08
поделиться

3 ответа

Привет, мне было интересно, почему MYSQL использует один знак равенства в условных операторах вместо более типичных двух знаков равенства. Есть ли для этого техническая / историческая причина? Спасибо.

Сравнение гораздо более распространено в SQL , чем присваивание.

Вот почему SQL использует более короткий синтаксис для выполнения более общих задач.

В классическом ] SQL , сравнение можно отличить от присваивания по контексту (присваивание может быть только в предложении SET оператора UPDATE ), поэтому один оператор может использоваться для обеих операций .

В расширении MySQL для SQL присвоение переменной сеанса обозначается как : =

9
ответ дан 6 December 2019 в 08:45
поделиться

Скорее исторический.

Это SQL. Для сравнения с начала 70-х годов используется единственный знак равенства.

7
ответ дан 6 December 2019 в 08:45
поделиться

В SQL никогда не бывает двусмысленности.

В исходном Руководстве по стандарту SQL от CJDate (издание 1987 г.), = для назначения используется только в предложении SET в UPDATE . Везде = используется для сравнения.

Но в других языках, таких как C / C ++ / C # / Java, = может использоваться как присваивание, но также возвращает значение. Итак, a = b означает «установить a равным b и вернуть a », тогда как a == b ] означает «вернуть истину , если a и b равны». (Это приводит к очень распространенной ошибке в программах на C, поскольку if (a = b) и if (a == b) оба допустимы, поскольку результат не обязательно должен быть логическим значением.)

Некоторые языки, например JavaScript / ECMAScript также вводит === в качестве третьего типа сравнения. На этих языках == означает «преобразовать в тот же тип и сравнить», тогда как === означает «вернуть истину , только если они одного типа и одинаковы. значение "

5
ответ дан 6 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: