Bezeichnen wir es als "philosophische Frage". Es gibt hier irgendwo einen Thread der ausdiskutiert, dass die Datenbank sowieso entscheidet als welchen Datentyp sie die Auswertung vornimmt, es ihr also egal ist, ob du jetzt als Vergleichswert für eine Zahl einen String angibst. Nur für mich ist halt die "saubere Logik": Das ist ein Zahl-Feld, also vergleichen wir nicht mit einem String:
WHERE textfeld = '$(textvariable)'
WHERE zahlfeld = $(zahlvariable)