2016-04-26 8 views
0

Derzeit habe ich dieses Feld in meiner Datenbank, die ein (16, 10) doppelt ist. Ich muss dies zu einem (16, 4) Doppel ändern. Das einzige Problem ist, dass ich viele Datensätze habe und überprüfen muss, ob einige dieser Datensätze mehr als 4 Dezimalstellen verwenden. Etwas wie 1500.3333333. Das Problem ist, dass ich, wenn ich nur das Feld zu (16,4) ändere, Nullen nach rechts bekomme, wie zum Beispiel 14,5500.Überprüfen Sie die Dezimalstellen, die nicht 0 sind

Gibt es eine Möglichkeit, Mysql zu verwenden, die ich überprüfen kann, ob das Double mehr als 4 Dezimalstellen verwendet, die nicht 0 sind?

+0

Haben Sie Dezimal * Plätze bedeuten *? Eine 'Dezimalstelle' ist eine Ziffer in Basis-10. Schwer zu verstehen, wovon du sprichst. – EJP

+0

Ja, Nachkommastellen, tut mir leid, aber Englisch ist nicht meine Hauptsprache, und manchmal ist es schwer, mich richtig auszudrücken. –

+0

Vielen Dank für Ihre Frage. "Dezimal" wird viel missbraucht. Einige Leute benutzen es, um den Dezimal * Punkt zu meinen, * andere, um die Dezimalstellen zu meinen. Es bedeutet keines von beiden, und es kann sicherlich nicht beides bedeuten. – EJP

Antwort

0

Verwenden CHAR_LENGTH() und LIKE Funktionen, wie folgt aus:

SELECT * FROM table 
WHERE CHAR_LENGTH(column) > 4 
     AND column NOT LIKE "%0" 
Verwandte Themen