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

error de sintaxis en delete

Estas en el tema de error de sintaxis en delete en el foro de Mysql en Foros del Web. Hola, me llamo Sergio y soy nuevo en este foro, tengo una web de un juego de coches para la que estoy haciendo un script ...
  #1 (permalink)  
Antiguo 17/03/2009, 13:52
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 2
error de sintaxis en delete

Hola, me llamo Sergio y soy nuevo en este foro, tengo una web de un juego de coches para la que estoy haciendo un script de inscripciones en carrera y cuando un usuario se quiere desinscribir de una carrera hago un delete en la tabla inscripciones y me muestra el siguiente error, por mas que lo compruebo no se donde esta el error:

Código:
ALTER TABLE inscripciones DEFAULT CHARACTER SET=latin1 DEFAULT COLLATE=latin1_swedish_ci; 

DELETE FROM inscripciones 
where piloto ='SELECT username FROM ip_users where user_id=2' 
and carrera ='Gran Premio de Westhill'; 

ALTER TABLE inscripciones DEFAULT CHARACTER SET=latin1 DEFAULT COLLATE=latin1_spanish_ci;

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 '; DELETE FROM inscripciones where piloto ='SELECT username FROM ip_users where u' at line 1
Los ALTER TABLE los utilizo porque antes me daba un error de mixcollation y no puedo cambiar los collates, entonces había pensado cambiarlo y luego al terminar el delete dejarlo como estaba.

Saludos y gracias de antebrazo.
  #2 (permalink)  
Antiguo 17/03/2009, 14:02
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: error de sintaxis en delete

Intentalo asi:

DELETE FROM inscripciones
where piloto =(SELECT username FROM ip_users where user_id=2)
and carrera ='Gran Premio de Westhill';

Al parecer le estas entregando todo el select como una cadena y no como el valor de retorno.

Un saludo
  #3 (permalink)  
Antiguo 17/03/2009, 14:11
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: error de sintaxis en delete

Sigue con el mismo error.

Saludos y gracias
  #4 (permalink)  
Antiguo 17/03/2009, 14:20
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: error de sintaxis en delete

sll88

La consulta no tiene errores de sintaxis asumiendo que username es del mismo tipo de dato que piloto y que realmente haya un solo dato de salida en (SELECT username FROM ip_users where user_id=2).

Que versión de mysql utilizas? soporta subconsultas?

Un saludo y bienvenido.
  #5 (permalink)  
Antiguo 17/03/2009, 14:23
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: error de sintaxis en delete

Mi versión es esta MySQL 4.1.22.
  #6 (permalink)  
Antiguo 17/03/2009, 14:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: error de sintaxis en delete

He probado a poner la consulta tal cual en phpmyadmin y me saca este error:

Illegal mix of collations (latin1_spanish_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='


No se porque no le hace caso a los ALTER TABLE.

Saludos y gracias.
  #7 (permalink)  
Antiguo 17/03/2009, 14:43
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: error de sintaxis en delete

mira esto:

http://lists.mysql.com/mysql-es/1726

Es muy similar a lo que te pasa.

Pruebalo
  #8 (permalink)  
Antiguo 17/03/2009, 15:50
 
Fecha de Ingreso: febrero-2007
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 2
Respuesta: error de sintaxis en delete

Cita:
Iniciado por huesos52 Ver Mensaje
mira esto:

link

Es muy similar a lo que te pasa.

Pruebalo
Muchas gracias me a servido de gran ayuda tu link, lo he solucionado de la siguiente forma:

Código:
DELETE FROM inscripciones where piloto COLLATE latin1_swedish_ci =(SELECT username FROM ip_users where user_id=2 ) and carrera ='Carrera de DRIFT'
Asi cambio el collate.

Saludos.
  #9 (permalink)  
Antiguo 17/03/2009, 15:59
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: error de sintaxis en delete

Es con mucho gusto.
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 10:12.