MySQL query returns row 0 when it doesn't match the query criteria
I have开发者_如何学编程 a table with a primary key:
Type:INT Length:11 Default:NULL Extra:auto_increment
The table contains 3 records - 0, 1 and 4
When I try...
SELECT the_key FROM the_table WHERE the_key='someRandomString'
...it returns 1 record (primary key 0)
I can solve it with a PHP is_numeric() but why doesn't it return 0 records?
It looks like you're comparing an int column against a string value? It looks like MySQL is converting the string to an int, coming up with 0, and matching that row.
Two options:
- Don't do that. Don't write comparisons of incompatible types.
- See if MySQL has an option to go into a stricter mode where it doesn't convert incompatible types automatically.
精彩评论