Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/12/2002, 19:50
Herminio Heredia San
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 6 meses
Puntos: 6
Creo que estas haciendo mal uso del campo ENUM:
ENUM(valor,valor1....);
Es un objeto string que puede tomar solo un valor de la lista separada por comas, el valor NULL o el "".
Lo que tu estas intentando es usarlo com si fuera un arreglo, pero no lo es a un cuando internamente cada valor agregado este referenciado por un valor numerico que es el INDEX del campo NUM.
El funcionamiento lo podemos ver de la siguiente forma, supongamos una tabla llamada usuario como la tuya que tenga los campos id,nombre,ciudad donde ciudad sera un campo ENUM. que contiene los valores Madrid, Barcelona,Valencia.

create table usuario(
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
u_nombre VARCHAR(100),
u_ciudad ENUM('Madrid','Barcelona','Valencia'),
PRIMARY KEY (id)
);


Supongamos que quiero agregar un usuario, que se llame juanito y que sea de la ciudad de Barcelona lo haria de la siguiente forma.

INSERT INTO usuario(u_nombre,u_ciudad) VALUES('Juanito',2);

Si a hora hago una consulta buscando a juantio:
SELECT * FROM usuario WHERE u_nombre = 'Juanito';
obtendria como respuesta los valores 1,Juanito,Barcelona.

Esto es debido que dentro del objeto ENUM creado, la informacion esta almacenada de la siguiente forma.
valor index
NULL NULL
"" 0
Madrid 1
Barcelona 2
Valencia 3