Heim  >  Artikel  >  Datenbank  >  Warum findet meine MySQL-Abfrage meinen Float-Wert nicht?

Warum findet meine MySQL-Abfrage meinen Float-Wert nicht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 18:30:29666Durchsuche

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

Fehlerbehebung bei MySQL-FLOAT-Auswahlproblemen

Beim Versuch, eine Zeile aus einer MySQL-Tabelle basierend auf einem Float-Wert abzurufen, tritt ein häufiges Problem auf Der übereinstimmende Wert gibt null Zeilen zurück. Dieses Problem kann auftreten, wenn die Gleitkommazahlen in der Tabelle und die Abfrage unterschiedliche Genauigkeit haben.

Betrachten Sie beispielsweise die folgende Abfrage:

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

Auch wenn die Tabelle eine Zeile mit ident= enthält B. „ident23“ und „price=“101.31“, entspricht die Abfrage aufgrund der unterschiedlichen Genauigkeit möglicherweise nicht der Übereinstimmung. Um dieses Problem zu beheben, können Sie die Preisspalte in einen DECIMAL-Typ umwandeln:

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

Dadurch wird sichergestellt, dass beide Werte mit der gleichen Genauigkeit verglichen werden, sodass die Abfrage die richtige Zeile abrufen kann.

Alternativ können Sie erwägen, die Preisspalte dauerhaft in einen DECIMAL-Typ zu ändern. DECIMAL ist aufgrund seiner höheren Präzision im Vergleich zu FLOAT im Allgemeinen der bevorzugte Datentyp für die Verarbeitung von Geldwerten.

Das obige ist der detaillierte Inhalt vonWarum findet meine MySQL-Abfrage meinen Float-Wert nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn