MySQL convertit/convertit automatiquement la chaîne en nombre ?
P粉336536706
P粉336536706 2023-10-24 08:36:29
0
2
681

MySQL convertit-il automatiquement les chaînes en valeurs numériques ?

Comment fonctionne cette conversion ?

  • '1234'=1234 ?
  • '1abc' = 1 ?
  • 'texte' = 1 ?

Étant donné que units.id est de type bigint, comment cette requête sera-t-elle interprétée ?

SELECT table.* 
FROM table 
WHERE id='text'

P粉336536706
P粉336536706

répondre à tous(2)
P粉099145710

Par défaut, MySQL traite 1 et "1" de la même manière, mais vous pouvez modifier cela en définissant le comportement de MySQL en mode strict.

set @@GLOBAL.sql_mode  = "STRICT_ALL_TABLES";
set @@SESSION.sql_mode = "STRICT_ALL_TABLES";

Ou vous pouvez définir ces variables dans le fichier my.cnf comme variables permanentes dans sql_mode = ''. De cette façon, MySQL générera une erreur si un type incorrect est utilisé. Lisez http://dev.mysql.com/doc/ refman/5.0/en/server-sql-mode.html pour plus de détails

P粉330232096

Les réponses aux trois premières questions sont : oui, oui et non.

comme une ficelle 'text'转换为数字时,它变成值0.

La documentation décrivant les conversions de types se trouve ici .

Pour vos demandes :

SELECT table.* 
FROM table 
WHERE id='text';

Cette règle est capturée via un extrait de documentation :

En d’autres termes, cela équivaut en réalité à :

WHERE id = 0.0
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal