Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Update campo (https://www.clubdelphi.com/foros/showthread.php?t=74307)

amerika111 10-06-2011 18:21:52

Update campo
 
hola que tal, quisiera saber si hay una forma de actualizar un campo que contiene informacion extra:

ejemplo

campo direccion

Direccion
c.carlos cuaron,colonia madero #222

realizar un update y dejar solo la palabra madero

trate de realizarlo de la siguiente manera

update colonias set direccion='madero' where direccion=(select direccion from colonias where direccion like '%madero%')

y arroja este error

multiple rows in singleton select

Chris 10-06-2011 18:43:11

Cita:

Empezado por amerika111 (Mensaje 403308)
update colonias set direccion='madero' where direccion=(select direccion from colonias where direccion like '%madero%')

Más o menos llevas una idea... vas por buen camino. Pero a cómo dice el error, el operador = solo puede comparar con un único valor, no con muchos a cómo devolverá el SELECT.

Para hacer lo que deseas puedes probar este código SQL:
Código SQL [-]
update colonias set direccion='madero' where id in (select id from colonias where direccion like '%madero%')

La diferencia es que utilizo el operador IN. Utilizando el campo ID (que supongo tienes en tu tabla). Usando el campo ID o cualquier otro identificador de tipo entero se logra optimizar en gran manera la consulta.

Saludos,
Chris

guillotmarc 10-06-2011 18:43:21

Hola.

No has escogido el operador adecuado. Tu consulta funcionaría así :

update colonias set direccion='madero' where direccion in (select direccion from colonias where direccion like '%madero%')

Aunque personalmente creo que es mucho más simple y elegante esta otra :

update colonias set direccion = 'madero' where direccion containing 'madero'

Saludos.


La franja horaria es GMT +2. Ahora son las 16:26:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi