sql >> Database >  >> RDS >> Mysql

Hoe impliciete conversie van MySQL te voorkomen (afgekapte onjuiste DOUBLE-waarde)

Probeer het liever expliciet te casten met CAST of CONVERT functioneren zoals hieronder en reken niet op impliciete casting.

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

(OR)

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

Bovendien heeft het geen zin om een ​​INT . te vergelijken typ kolom met string value en AFAIK, is er geen dergelijke instelling aanwezig om impliciete casting te stoppen. als je echt fouten wilt maken in plaats van het naar 0 te converteren, cast het dan expliciet; in dat geval zal er een fout optreden.

Zie Typeconversie in expressie-evaluatie Voor meer informatie.



  1. T-SQL-query om tabeldefinitie te tonen?

  2. Wat is het gegevenstype dat moet worden gebruikt voor een beschrijving?

  3. Tijdstempel krijgen met MySQL

  4. Oracle-beveiligingswaarschuwing voor CVE-2021-44228