sql >> Databasteknik >  >> RDS >> Mysql

mysql autocasting sträng till heltal

Från dokumenten:

Ditt ärende faller under "alla andra ärenden".

Strängen kommer att castas till en FLOAT och jämför sedan med din int_val .

Om strängen kastar bra (värden som '1' , '0.1' eller '1E5' ), kommer det resulterande värdet att jämföras med heltal.

Om inte (säg att du skickar ett värde som '1235xxx' ), kommer de möjliga inledande siffrorna att kastas till en flytande (0 om ingen), och resten är trunkerat. Dessutom kommer en varning att genereras.

Anledningen till att skicka id:t i en sträng kan vara att ditt id inte nödvändigtvis behöver vara ett heltal. Det kan också vara en sträng eller ett datum.

Förmodligen har ORM en generisk kod för att generera DELETE fråga som skulle fungera på vilken datatyp som helst.



  1. Exempelscheman på GitHub

  2. MySQL främmande nyckel PÅ DELETE CASCADE över 3 tabeller

  3. Sammanfoga flera rader i enstaka rader i MySQL

  4. kan vi infoga i två tabeller med en sql-sats?