Maison >base de données >tutoriel mysql >Comment MySQL gère-t-il la conversion implicite des types de données dans les requêtes ?

Comment MySQL gère-t-il la conversion implicite des types de données dans les requêtes ?

DDD
DDDoriginal
2024-11-20 16:32:18987parcourir

How Does MySQL Handle Implicit Data Type Conversion in Queries?

Conversion implicite de type de données MySQL

MySQL possède la capacité de convertir automatiquement des chaînes en valeurs numériques dans certaines circonstances.

Mécanisme de conversion

  • '1234' est converti en 1234 car il s'agit d'une chaîne de type entier.
  • '1abc' est converti en 1 car la partie numérique de la chaîne est identifié pour la conversion.
  • 'text' n'est pas converti en nombre car il ne contient aucun caractère numérique reconnaissable.

Interprétation de la requête

Avec le scénario donné, où units.id est un type bigint, la requête

SELECT table.* 
FROM table 
WHERE>

sera interprétée comme suit :

  • 'text' est implicitement converti en 0,0 (zéro à virgule flottante).
  • La clause WHERE devient désormais effectivement WHERE id = 0.0.
  • La requête renverra les lignes où l'identifiant est égal à 0 (bigint).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn