Dos documentos:
Seu caso se enquadra em "todos os outros casos".
A string será convertida em um
FLOAT e, em seguida, comparado com seu int_val . Se a string for bem convertida (valores como
'1' , '0.1' ou '1E5' ), o valor resultante será comparado ao inteiro. Caso contrário (digamos que você passe um valor como
'1235xxx' ), os possíveis dígitos iniciais serão convertidos para um float (0 se nenhum), e o resto é truncado. Além disso, um aviso será gerado. A razão para passar o id em uma string pode ser que seu id não precisa necessariamente ser um inteiro. Pode ser uma string ou uma data também.
Provavelmente o ORM tem um código genérico para gerar
DELETE query que funcionaria em qualquer tipo de dados.