sql >> Database teknologi >  >> RDS >> Mysql

Sådan undgår du implicit konvertering af MySQL (Trunkeret forkert DOBBELT værdi)

Du bør hellere prøve at caste det eksplicit ved hjælp af CAST eller CONVERT fungerer som nedenfor og regner ikke med implicit casting.

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

(OR)

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

Desuden er der ingen mening i at sammenligne en INT skriv kolonne med string værdi og AFAIK, er der ingen sådan indstilling til stede for at stoppe implicit casting. hvis du virkelig ønsker at resultere i fejl i stedet for at konvertere det til 0, så cast det eksplicit; i så fald vil det fejle.

Se Typekonvertering i udtryksevaluering For mere information.



  1. MariaDB:Kan jeg hente duplikerede kolonnenavne uden at bruge 'AS'

  2. udføre øjeblikkelig ændringssekvens virker ikke

  3. Mysql slette ordre af

  4. Interessante ting om I STEDET FOR triggere