7
votes

Un seul égal à MySQL

Je me demandais pourquoi MySQL utilise un seul signe égal à des instructions conditionnelles au lieu des signes les plus typiques de deux égaux. Existe-t-il une raison technique / historique à cela? Merci.


0 commentaires

3 Réponses :


7
votes

plus comme historique.

C'est SQL. Il a utilisé un seul signe égal à une comparaison depuis le début des années 70.


1 commentaires

Il a été développé par IBM dans les années 70. Il fut à l'origine nommé langage de requête anglais structuré, il est donc destiné à être proche de la langue humaine régulière.



9
votes

Bonjour, je me demandais pourquoi MySQL utilise un seul signe égal à des instructions conditionnelles au lieu des signes les plus typiques de deux égaux. Existe-t-il une raison technique / historique à cela? Merci.

La comparaison est beaucoup plus commune dans SQL que cession.

C'est pourquoi SQL utilise plus de syntaxe courte pour faire des choses plus courantes.

dans classique SQL , la comparaison peut être distinguée de l'affectation par contexte (affectation peut être uniquement dans la clause Set d'une instruction Mise à jour), C'est pourquoi un opérateur peut être utilisé pour les deux opérations.

in mySQL S. s Extension to SQL , l'affectation à une variable de session est désignée par : =


1 commentaires

SQL n'a pas évolué de Ingres 'Quel. Quel, bien que peut-être à certains égards un meilleur design, a été supplanté par SQL.



5
votes

Il n'y a jamais de cas d'ambiguïté en SQL.

dans l'original un guide de la standard SQL par cdate (Edition 1987), = pour la mission est uniquement utilisé dans le fichier Clause de Mise à jour . Partout ailleurs = est utilisé qu'il est utilisé à la comparaison.

Mais dans d'autres langues, telles que C / C ++ / C # / Java, = peut être utilisé comme affectation, mais elle renvoie également une valeur. Donc a = b signifie "définir a égal à b et retourner a " alors que a = = B signifie "retour true si a et b sont égaux". (Cela conduit à un bogue très courant dans les programmes C, car si (a = b) et si (a == b) est à la fois valide, car le résultat ne Il faut être un bool.)

Certaines langues comme JavaScript / ECMAScript introduisent également === comme troisième type de comparaison. Dans ces langues, == signifie "convertir au même type et comparer" alors que === signifie "retour vrai Seulement si elles sont les mêmes type et même valeur. "


0 commentaires