Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2011
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
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
Responder Con Cita
  #2  
Antiguo 10-06-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por amerika111 Ver Mensaje
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
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 10-06-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Agregar caractares a un campo con update... verito_83mdq SQL 11 20-03-2011 21:30:14
update campo con comillas toni.vi SQL 7 18-11-2009 17:44:37
Hacer un insert o un update en un campo array David Firebird e Interbase 4 27-04-2007 19:14:13
Update para un campo dbgrid multiselect jorelivi Varios 1 26-04-2007 23:54:27
UPDATE de un campo dependiendo del valor de un campo de otra tabla Javi2 SQL 5 18-04-2005 16:35:05


La franja horaria es GMT +2. Ahora son las 16:31:33.


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
Copyright 1996-2007 Club Delphi