Svaren på dina tre första frågor är:ja, ja och nej.
När strängen 'text'
omvandlas till ett tal, blir det värdet 0
.
Dokumentationen som beskriver typkonvertering finns här .
För din fråga:
SELECT table.*
FROM table
WHERE id='text';
Regeln fångas av detta utdrag ur dokumentationen:
I alla andra fall jämförs argumenten som flyttalstal (reella).
Med andra ord, detta motsvarar faktiskt:
WHERE id = 0.0