Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So vermeiden Sie die implizite Konvertierung von MySQL (abgeschnittener falscher DOUBLE-Wert)

Sie sollten lieber versuchen, es explizit mit CAST zu casten oder CONVERT funktionieren wie unten und verlassen sich nicht auf implizites Casting.

SELECT * FROM test WHERE sample_col = cast('foo' as int);

(OR)

SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';

Außerdem macht es keinen Sinn, einen INT zu vergleichen geben Sie Spalte mit string ein value und AFAIK, es gibt keine solche Einstellung, um das implizite Casting zu stoppen. Wenn Sie wirklich zu einem Fehler führen möchten, anstatt ihn in 0 zu konvertieren, dann wandeln Sie ihn explizit um; in diesem Fall wird ein Fehler ausgegeben.

Siehe Typkonvertierung in der Ausdrucksauswertung Für mehr Informationen.