Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2010, 01:25
jparent
 
Fecha de Ingreso: marzo-2010
Mensajes: 6
Antigüedad: 14 años, 7 meses
Puntos: 0
Exclamación igualar a 0 una cadena devuelve un select *

Hola, al realizar la siguiente operacion:

Código:
select count(*) from users where user="usuario" and password=0
devuelve 1. Que resulta ser el usuario "usuario", aunque su password no es 0!!

He probado a realizar una select en varias tablas. Si pones cualquier campo texto igualado a 0 devuelve todas las filas. Es decir realizar la operacion:


Código:
select * from mitabla where campo_texto_o_varchar = 0
es lo mismo que hacer:

Código:
select * from mitabla
No se si es normal pero creo que esto deberia dar un error de tipos ya que no deberia ser lo mismo el numero 0 que la cadena '0'. Y si toma 0 como NULL o FALSE deberia devolver los campos que cumplen que son NULL o FALSE y no todos. Me parece un fallo importante.

Mi version de MySQL es la 5.1

Saludos!