Maison >base de données >tutoriel mysql >Voici quelques titres basés sur des questions basées sur le texte que vous avez fourni, chacun se concentrant sur un aspect différent du problème : Option 1 (Se concentrer sur le problème) : * Pourquoi ma requête MySQL SELECT ne renvoie-t-elle aucune résolution
Une tentative d'exécution d'une requête SELECT en utilisant une valeur à virgule flottante comme condition entraîne souvent un comportement inattendu. Le problème suivant illustre ce défi :
<code class="sql">SELECT * FROM `table` WHERE `ident`='ident23' AND `price`='101.31';</code>
Cette requête ne renvoie aucune ligne, même si la valeur 101,31 apparaît dans la base de données pour la colonne prix. La suppression de la condition de prix renvoie la ligne attendue.
Pour résoudre ce problème, envisagez les solutions suivantes :
Convertir la valeur à virgule flottante en un type DECIMAL avant de comparer garantit une bonne précision :
<code class="sql">SELECT * FROM table WHERE CAST(price AS DECIMAL) = CAST(101.31 AS DECIMAL);</code>
Pensez à modifier la colonne prix en type DECIMAL, qui offre une meilleure précision pour les valeurs monétaires :
ALTER TABLE `table` MODIFY COLUMN `price` DECIMAL;
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!