Odpovědi na vaše první tři otázky jsou:ano, ano a ne.
Když je řetězec 'text'
převede na číslo, stane se z něj hodnota 0
.
Dokumentace, která popisuje konverzi typů, je zde .
Pro váš dotaz:
SELECT table.*
FROM table
WHERE id='text';
Pravidlo vystihuje tento výňatek z dokumentace:
Ve všech ostatních případech jsou argumenty porovnávány jako čísla s plovoucí desetinnou čárkou (reálná).
Jinými slovy, toto je ve skutečnosti ekvivalentní:
WHERE id = 0.0