Maison > base de données > tutoriel mysql > Comment résoudre l'écueil du jugement de valeur 0 dans Mysql

Comment résoudre l'écueil du jugement de valeur 0 dans Mysql

PHPz
Libérer: 2023-05-29 12:01:26
avant
1440 Les gens l'ont consulté

    Pièges de Mysql concernant un jugement de valeur 0

    Récemment, j'ai rencontré un problème avec Mysql renvoyant plusieurs valeurs, et j'ai finalement découvert qu'il s'agissait d'un problème avec un jugement de valeur 0 dans les conditions de filtre MySQL.

    La question concise est la suivante

    Il existe un champ INT a, la valeur par défaut est 0 et la condition de jugement transmise par le programme est a = 'abacd'.

    L'entrée est une chaîne et toutes les données avec a=0 sont renvoyées.

    Raison

    mysql fera un jugement logique S'il s'agit d'un jugement entier, mais que l'entrée est une chaîne, si la chaîne n'est pas un nombre, la chaîne sera convertie en 0. Par conséquent,

    La condition réelle jugée par ce code est a = 0.

    Solution

    Lorsque vous effectuez des jugements logiques dans MySQL, vous devez vous assurer que la valeur entrante est cohérente avec le type de champ, c'est-à-dire que les champs entiers doivent être jugés comme des entiers et les champs de chaîne doivent être jugés comme des chaînes. Lorsque des jugements croisés doivent être effectués, des ajustements appropriés doivent être effectués en fonction de la logique métier pour éviter d'avoir des ennuis.

    Extension du problème

    Si le champ a est de type varchar et que la valeur est 0, alors a='0' doit être utilisé pour juger, au lieu de a = 0. La raison est cohérente avec la raison ci-dessus, la chaîne sera converti en 0 , le résultat final est 0 = 0.

    Résumé des malentendus dans le jugement Mysql de valeur 0

    Dans MySQL, lorsque le champ de la table de données est de type int, vous pouvez juger si le champ est 0, et il n'y aura aucun problème. S'il s'agit d'un type char ou varchar, vous devez utiliser « 0 ». Évidemment, les chaînes et les entiers ne sont pas équivalents. Alors ne commettez pas une erreur aussi stupide.

    Voici le principe de recherche mysql trouvé sur Internet :

    mysql convertira d'abord la valeur du champ en un entier puis la comparera.

    Si le premier chiffre du champ est une chaîne, alors il sera converti en entier et il sera 0.

    Généralement, les guillemets sont requis lors de la recherche de chaînes.

    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!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    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
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal