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

ayuda con una consulta

Estas en el tema de ayuda con una consulta en el foro de Mysql en Foros del Web. a ver nose como explicarme, vayamos por partes tengo una tabla con 2 campos: id_destino y id_autor. y tb tengo 2 ids (id_1 y id_2) ...
  #1 (permalink)  
Antiguo 14/07/2006, 10:02
 
Fecha de Ingreso: abril-2005
Mensajes: 100
Antigüedad: 19 años
Puntos: 0
ayuda con una consulta

a ver nose como explicarme, vayamos por partes

tengo una tabla con 2 campos: id_destino y id_autor.

y tb tengo 2 ids (id_1 y id_2) que son las que tengo que buscar.

Bueno lo que tengo que hacer es buscar si ya existe un registro con esas 2 ids en la misma fila, osea por ejemplo:

select * from mensaje where id_destino='id_1' and id_autor='id_2' limit 1;

el problema es que solo puede haber un registro con id_1 y id_2 pero puede estar cambiados de posicion, id_2 podria estar en id_destino y id_1 en id_autor o al reves, pero tengo que sacar si ya existe y si no existe pues se crea. como prodria hacerlo? me tiene echo un lio
  #2 (permalink)  
Antiguo 14/07/2006, 11:33
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Prueba con or, asi:

Código:
select * from mensaje where ((id_destino='id_1' or id_destino='id_2') and (id_autor='id_1' or id_autor='id_2')) limit 1;
  #3 (permalink)  
Antiguo 14/07/2006, 11:46
 
Fecha de Ingreso: abril-2005
Mensajes: 100
Antigüedad: 19 años
Puntos: 0
muchisimas gracias me ha valido tu ejemplo, aunque he teniedo que cambiar el or por and y el and por or para que me diera lo que yo keria, muchas gracias.

porcierto mysql no tiene nada para buscar un mismo valor en varios campos? algo como where campo1,campo2='lo que sea'
  #4 (permalink)  
Antiguo 14/07/2006, 13:02
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
En realidad SQL no define dicha sintaxis, por eso los motores como el de mysql tampoco la implementan.
La sintaxis contraria existe:

select * from tabla where campo in (valor1,valor2,valor3, ... , valorn)
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 11:55.