sql >> Databáze >  >> RDS >> Mysql

Proč SELECT ... WHERE id =a vrátí výsledek, pokud je hodnota 0

MySQL tiše převádí řetězce na čísla v číselném kontextu.

Činí tak převodem úvodních číselných znaků (jako jsou číslice, znaménko mínus a desetinná čárka).

Pokud tam nejsou žádné číslice, zastaví se. Takže:

where id = 'a'

se interpretuje jako:

where id = 0

Morálka:Nikdy nepoužívejte jednoduché uvozovky kolem číselných konstant – nebo konstant, které by měly být čísla.




  1. Oprava děr/mezer v číslech generovaných sekvencí Postgres

  2. Optimalizace výkonu MySQL:pořadí podle pole data a času

  3. Oracle SQL:Použijte sekvenci v insert s příkazem Select

  4. MySQL #1140 - Míchání sloupců GROUP