sql >> Databasteknik >  >> RDS >> Mysql

Hur man undviker implicit konvertering av MySQL (Trunkerat felaktigt DUBBELt värde)

Du bör hellre försöka casta den explicit med CAST eller CONVERT fungerar som nedan och räkna inte med implicit casting.

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

(OR)

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

Dessutom är det ingen idé att jämföra en INT skriv kolumn med string värde och AFAIK, finns det ingen sådan inställning för att stoppa implicit casting. om du verkligen vill resultera i fel istället för att konvertera det till 0, cast det explicit; i så fall kommer det att felas.

Se Typkonvertering i uttrycksutvärdering För mer information.



  1. mysql skapa tabell dynamiskt

  2. Summa upp Delsumma i rutnätsvy

  3. Hur får man en mysql-fråga att ständigt uppdatera i PHP?

  4. Hur gör man två frågor med vanliga kolumner (A, B) och (A, C) till bara en (A, B, C)?