Maison >base de données >tutoriel mysql >Pourquoi ma requête MySQL ne trouve-t-elle pas ma valeur flottante ?

Pourquoi ma requête MySQL ne trouve-t-elle pas ma valeur flottante ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 18:30:29744parcourir

 Why Doesn't My MySQL Query Find My Float Value?

Dépannage du problème de sélection MySQL FLOAT

Lors de la tentative de récupération d'une ligne d'une table MySQL basée sur une valeur flottante, un problème courant survient lorsque la valeur correspondante renvoie zéro ligne. Ce problème peut se manifester lorsque les flottants de la table et la requête ont une précision différente.

Par exemple, considérons la requête suivante :

SELECT * FROM `table` WHERE `ident`='ident23' AND `price`='101.31';

Même si la table contient une ligne avec ident= 'ident23' et price='101.31', la requête peut ne pas y correspondre en raison d'une précision différente. Pour résoudre ce problème, vous pouvez convertir la colonne de prix en type DECIMAL :

SELECT * FROM table WHERE CAST(price AS DECIMAL) = CAST(101.31 AS DECIMAL);

Cela garantira que les deux valeurs sont comparées avec la même précision, permettant à la requête de récupérer la ligne correcte.

Vous pouvez également envisager de modifier définitivement la colonne de prix en type DECIMAL. DECIMAL est généralement le type de données préféré pour gérer les valeurs monétaires en raison de sa plus grande précision par rapport à FLOAT.

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