MySQL - UPDATE con error

   
Vista:

UPDATE con error

Publicado por javier (21 intervenciones) el 21/02/2012 20:54:02
Hola.
Buenas noches.
¿Qué puede fallar en este UPDATE?

UPDATE rankin3 SET nsoc = (select numsoc from socios where MATCH (nombre, apel1, apel2) AGAINST (socios.nombre, socios.ape1, socios.ape2);


Falla y hace referencia al componente AGAINST

Fallo al ejecturar SQL : SQL UPDATE rankin3 SET nsoc = (select numsoc from socios where MATCH (nombre, apel1, apel2) AGAINST (socios.nombre, socios.ape1, socios.ape2); falló: 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 ' socios.ape1, socios.ape2)' at line 1

¿Qué puede estar mal?.

Muchas gracias y buenas noches.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

UPDATE con error

Publicado por Gonzalo GC (339 intervenciones) el 21/02/2012 23:11:19
Cuenta cuántos paréntesis se abren y se cierran. Encontrarás el error en un instante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

UPDATE con error

Publicado por xve (899 intervenciones) el 21/02/2012 23:16:53
Hola Javier, creo que el error lo tienes en aquí AGAINST (socios.nombre, socios.ape1, socios.ape2) en AGAINST() tendrías que indicar la cadena a buscar en los campos indicados en MATCH(), no los campos de la base de datos...

Un ejemplo podria ser que quieres buscar la palabra "jose"... entonces seria algo así:
1
select numsoc from socios where MATCH (nombre, apel1, apel2) AGAINST ("jose")

Si este resultado, lo tienes que poner dentro de un update, tendrías que limitar el numero de resultados... algo así:
1
2
3
UPDATE rankin3 SET nsoc = (
    select numsoc from socios where MATCH (nombre, apel1, apel2) AGAINST ("jose") LIMIT 1
)

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

UPDATE con error

Publicado por Javier (21 intervenciones) el 22/02/2012 18:20:56
Muchas gracias a todos.
Al primer comentario gracias, pero sigue dando erro aún rectificando los parentesis.
Al segundo, xve, entonces si yo quiero compararlos con los campos de otra tabla que deberia hacer?.

En principio se me ocurre una cosa y es crear un indice con la union de los tres campos, nombre, ape1 y ape2 pero no lo tengo muy claro.
¿Otra posible opcion?.


Un saludo atodos.
Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

UPDATE con error

Publicado por xve (899 intervenciones) el 22/02/2012 22:09:00
Javier, tal como te puse en el ejemplo, debería de funcionar-te... también te da error?? que error te da?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

UPDATE con error

Publicado por javier (21 intervenciones) el 23/02/2012 19:58:19
Buenas tardes de nuevo.
Falla y el error es el siguiente:

UPDATE rankin3 SET nsoc = ( select numsoc from socios where MATCH (nombre, apel1, apel2) AGAINST ("Francisco") LIMIT 1 )

Fallo al ejecturar SQL : SQL UPDATE rankin3 SET nsoc = ( select numsoc from socios where MATCH (nombre, apel1, apel2) AGAINST ("Francisco") LIMIT 1 ); falló: Incorrect arguments to MATCH

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar