Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Error MySql

Estas en el tema de Error MySql en el foro de Bases de Datos General en Foros del Web. Tengo un error al ejecutar la siguiente consulta directamente sobre MySql SELECT * FROM `clientes` WHERE `nombre_empresa` = 'un nombre' Error #1267 - Illegal mix ...
  #1 (permalink)  
Antiguo 23/11/2004, 13:24
 
Fecha de Ingreso: noviembre-2004
Mensajes: 176
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Error MySql

Tengo un error al ejecutar la siguiente consulta directamente sobre MySql

SELECT * FROM `clientes` WHERE `nombre_empresa` = 'un nombre'

Error

#1267 - Illegal mix of collations (latin1_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

...recurri a http://dev.mysql.com/doc/mysql/en/Error-handling.html y dice lo siguiente

Error: 1267 SQLSTATE: HY000 (ER_CANT_AGGREGATE_2COLLATIONS) Message: Illegal mix of collations (%s,%s) and (%s,%s) for operation '%s'

...el campo es de tipo varchar(60), pero no veo donde pueda estar el error, espero me puedan ayudar

Saludos y gracias
  #2 (permalink)  
Antiguo 23/11/2004, 13:29
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
intenta asi:

SELECT * FROM clientes WHERE nombre_empresa = 'un nombre'
__________________
El conocimiento es libre: Movimiento por la Devolución
  #3 (permalink)  
Antiguo 23/11/2004, 13:40
 
Fecha de Ingreso: noviembre-2004
Mensajes: 176
Antigüedad: 19 años, 5 meses
Puntos: 0
Error

#1267 - Illegal mix of collations (latin1_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
  #4 (permalink)  
Antiguo 23/11/2004, 13:41
 
Fecha de Ingreso: noviembre-2004
Mensajes: 176
Antigüedad: 19 años, 5 meses
Puntos: 0
La verdad es que no se que pueda ser ya que la consulta SQL veo que esta bien, lo que creo es que debe haber un problema con la tabla???
  #5 (permalink)  
Antiguo 23/11/2004, 13:57
 
Fecha de Ingreso: noviembre-2004
Mensajes: 176
Antigüedad: 19 años, 5 meses
Puntos: 0
...y al crear el codigo PHP y ejecutar la consulta aparece el siguiente error

SELECT * FROM clientes WHERE nombre_empresa = ''www'

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'www'
' at line 1
  #6 (permalink)  
Antiguo 23/11/2004, 16:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
SELECT * FROM clientes WHERE nombre_empresa = ''www' fijate l ultima parte, usas una comilla doble con una comilla simple.... tienes que usar comillas simples (a no ser que solo haya sidoun error de tipeo al postear aca)
__________________
El conocimiento es libre: Movimiento por la Devolución
  #7 (permalink)  
Antiguo 24/11/2004, 08:34
 
Fecha de Ingreso: noviembre-2004
Mensajes: 176
Antigüedad: 19 años, 5 meses
Puntos: 0
Asi lo solucione

$Sql = "SELECT * FROM clientes WHERE CONVERT( `nombre_empresa` USING utf8 ) = 'www' ";

Creo que una manera algo oscura de hacer un select, pero no me funciono de ninguna otra forma.
Espero alguien tenga otra forma de solucionarlo
Gracias !!!
  #8 (permalink)  
Antiguo 15/12/2004, 11:49
Avatar de ortiz  
Fecha de Ingreso: septiembre-2004
Mensajes: 154
Antigüedad: 19 años, 7 meses
Puntos: 0
Vaya rachita de problemas....

Sí, yo también tengo este marrón. En la nueva versión del phpmyadmin, o en la de mysql se ha introducido algo que yo todavía desconozco, el collation.

Cree unas tablas con las setencias que tenia del phpmyadmin y msyql anteriores, y ahora he descubiero que ha añadido un campo nuevo, que yo no había creado, el collation.

En el phpmyadmin nuevo, puedes elegir el lenguaje:

Spanish (es-utf-8)

El juego de caracteres creo que es el mismo que el de arriba automáticamente.

Pero después está el "cotejamiento" -> COLLATION, donde hay opciones que no entiendo:

latin1,latin2,latin3....

Supongo que será cuestión de elegir la misma que el juego de carácteres....

Lo mejor es que al hacer las tablas no repare en ello, y las creo con un cotejamiento algo raro:

latin_swedish_c1...

No puedo hacer una sentencia tan simple como

SELECT * FROM pdf WHERE fabricante='pepsi'

Me da error...será cuestión de cambiar el cotejamiento de la tabla al mismo que el juego de caracteres...no?

Saludos

EDITO

No se si lo han escrito antes ,de todas maneras....

En el phpmyadmin,fijaos que en la estructura de la tabla , hay un nuevo campo, Collation(cotejamiento). Este ha de ser igual al que aparece en la home del phpmyadmin.

En la home, aparece el lenguaje, el juego de caracteres y el cotejamiento. En la tercera opción está el collation . En la mía está:

utf8_spanish_ci

Que es la misma que he puesto en todos los campos de la tabla en donde aparecía

latin1_spanish...

En fin, solo un susto.

Última edición por ortiz; 16/12/2004 a las 06:23
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:25.