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

mysql trasmette automaticamente la stringa a un numero intero

Dai documenti:

Il tuo caso rientra in "tutti gli altri casi".

La stringa verrà trasmessa a un FLOAT e poi confrontato con il tuo int_val .

Se string esegue correttamente il cast (valori come '1' , '0.1' o '1E5' ), il valore risultante verrà confrontato con l'intero.

In caso contrario (ad esempio di passare un valore come '1235xxx' ), le possibili cifre iniziali verranno convertite in float (0 se nessuno) e il resto viene troncato. Inoltre, verrà generato un avviso.

Il motivo per passare l'id in una stringa potrebbe essere che il tuo id non deve necessariamente essere un numero intero. Potrebbe essere anche una stringa o una data.

Probabilmente l'ORM ha un codice generico per generare DELETE query che funzionerebbe su qualsiasi tipo di dati.