sql >> Databáze >  >> RDS >> Mysql

Jak se vyhnout implicitní konverzi MySQL (zkrácená nesprávná hodnota DOUBLE)

Raději byste to měli zkusit přenést explicitně pomocí CAST nebo CONVERT fungovat jako níže a nepočítejte s implicitním castingem.

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

(OR)

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

Navíc nemá smysl porovnávat INT zadejte sloupec pomocí string hodnota a AFAIK, neexistuje žádné takové nastavení, které by zastavilo implicitní přetypování. pokud opravdu chcete mít za následek chybu spíše než její převod na 0, pak ji přetypujte explicitně; v takovém případě dojde k chybě.

Viz Převod typů ve vyhodnocení výrazů Pro více informací.



  1. Více podmínek pro spojení Codeigniter nefunguje

  2. MayBeSQL přichází do Microsoft Access!

  3. Oracle PL/SQL - tipy pro okamžitý výstup / tisk z konzole

  4. Použití Dapper a Postgresql - datový typ citext