Cita:
Iniciado por fedefrankk
Hola.! se que esta mal escrito, pero solo encuentro de busquedas de sistintas tablas con distintos campos, yo en una tabla quiero buscar en 3 campos...
yo lo que quiero saber si es buena practica en hacer tres busquedas en 3 campos, y no en uno solo
en uno solo me imagino que quedarian las tres palabras pegadas sin espacios.. en 3 campos distintos si no esta en uno esta en otro, y si no esta en ninguno chau no hay resultado...
estara bien ?
Saludos a todos
fede
¿Buena práctica?
No existe una buena práctica que te diga que se busca en un único campo o en tres o en quince. Eso depende de la estructura de la tabla y las necesidades de la consulta.
Si tienes tres campos sobre los que debes establecer condiciones de busqueda, pues se ponen los tres campos. De eso no hay dudas.
Lo que si debes considerar son las condiciones que evalúas, en cuanto a si son datos obligatorios al mismo tiempo, o son opcionales, si dos son obligatorios y otro opcional o bien si son interexcluyentes. Y eso sólo lo puedes decir tu, en base a tu propio esquema lógico.
Lo que si te podemos anticipar es que la consulta que propones está
mal escrita, porque las condiciones en un WHERE no se separan con comas, sino con operadores lógicos como AND y OR. Y además el SELECT no está indicando el campo o conjunto de campos que quieres recuperar de la tabla.
Por favor, lee un manual básico de SQL antes de seguir adelante.
Ahora bien, supongamos que todas son condiciones obligatorias:
Código SQL:
Ver originalSELECT *
FROM fotos
WHERE camp1=$busqueda1
AND camp2=$busqueda1
AND camp3=$busqueda1
Todos son opcionales:
Código SQL:
Ver originalSELECT *
FROM fotos
WHERE camp1=$busqueda1
OR camp2=$busqueda1
OR camp3=$busqueda1
Dos obligatorios y uno opcional:
Código SQL:
Ver originalSELECT *
FROM fotos
WHERE camp1=$busqueda1
OR (camp2=$busqueda1
AND camp3=$busqueda1)
(hay otras formas)
Y finalmente, un caso raro: Sólo uno puede ser TRUE:
Código SQL:
Ver originalSELECT *
FROM fotos
WHERE camp1=$busqueda1
XOR camp2=$busqueda1
XOR camp3=$busqueda1