MySQL - Consulta de dos columnas de una misma tabla

 
Vista:

Consulta de dos columnas de una misma tabla

Publicado por ranmma (2 intervenciones) el 07/11/2014 11:30:10
Buenas a todo el mundo, tengo un problema que llevo días dándole cabeza y no se como hacerlo haber si me podéis echar una mano.
Estoy creando un CMR de fichas de clientes para mi mujer y bueno ya me agrega fichas, me las edita y me las borra pero el problema lo tengo en el buscador de clientes.

Lo que tengo es una tabla llamada clientes que dentro están las columnas nombre, apellidos, población , etc.
El buscador solamente me busca en la columna de nombre y lo que quiero es que me busque tanto en nombre como en apellidos si alguien me pude decir como se hace la consulta le estaré muy agradecido.
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
Imágen de perfil de ruben

Consulta de dos columnas de una misma tabla

Publicado por ruben (3 intervenciones) el 07/11/2014 20:13:19
Solo que necesitas es el codigo sql...

SELECT nombre, apellidos, poblacion FROM Clientes WHERE nombre = "tunombre";

puedes omitir la clausula WHERE.

si esto no es lo que buscas... puedes ser un poco mas explicito en tu consulta.
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

Consulta de dos columnas de una misma tabla

Publicado por ranmma (2 intervenciones) el 13/11/2014 17:09:14
Muchas gracias Ruben me a funcionado perfectamente me busca el nombre o el apellido, ahora una pregunta mas si puede ser.

Ahora tenog el buscador que me busca o nombre o apellidos como hago para que me busque las dos cosas a la vez.
Por ejemplo si pongo pepe me busca el nombre pepe si pongo Luis suarez no me lo encuentra como lo puedo hacer.

Dejo aqui el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$buscar=$_POST['busca'];
$sql=mysql_query("SELECT `ID`, `NOMBRE`, `APELLIDOS`, `telefono` FROM `clients` WHERE nombre='$buscar' OR apellidos='$buscar'");
 
?>
<table border="1">
    <tr>
        <th>Nombre</th>
        <th>Apellidos</th>
        <th>Telefono</th>
    </tr>
<?php while($columnas=mysql_fetch_array($sql)){
    echo "<tr>";
        echo "<th>$columnas[NOMBRE]</th>";
        echo "<th>$columnas[APELLIDOS]</th>";
        echo "<th>$columnas[telefono]</th>";
        echo "<th><a href='editar.php?id=$columnas[ID]'>editar</a> | <a href='borrar.php?id=$columnas[ID]'>borrar</a></th>";
    echo "</tr>";
}
?>
</table>
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 ruben

Consulta de dos columnas de una misma tabla

Publicado por ruben (3 intervenciones) el 13/11/2014 18:00:00
Excelente me da gusto verte ayudado:

En este caso hay varias formas con SQL dependiendo del resultado que busques:

1.- Crear dos campos: uno para nombre y otro para apellido. si utilizas esto la query seria asi.

<?php
$buscar_nombre=$_POST['busca_name'];
$buscar_apellido=$_POST['busca_lastname'];
$sql=mysql_query("SELECT `ID`, `NOMBRE`, `APELLIDOS`, `telefono` FROM `clients` WHERE nombre='$buscar_nombre' AND apellidos = '$buscar_apellido' );

?>
// Esta busqueda es mas exacta... me refiero que si buscas luiz suarez no lo encontrara por la dif: luis : luiz

2.- de la misma manera mas flexible:

SELECT ID, NOMBRE, APELLIDOS, telefono FROM clients WHERE nombre LIKE '%s' and apellido LIKE '%z' ;

?>
la clausula LIKE sirve para aprox. un resultado... LIKE '%s' sig: que solo te buscara pal. que terminen en 's'.

puedes hacer combinaciones ejemplo para que empiece con una letra LIKE '%L' o tenga conjunto de letras en medio

LIKE '%ui%'


3.- Combinar nombres y apellidos en la tabla en un mismo campo... lo cual no recomiendo... pero funcionaria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consulta de dos columnas de una misma tabla

Publicado por angel (1 intervención) el 12/01/2018 11:40:20
a mi me funciono perfecta esta consulta en mysql, sólo no olvides darle un espacio entre las comillas dentro de los parentesis

select * from clients where concat(nombre," ",apellidos)="gabriela perez";

o con comillas simples tambien funciona la consulta:

select * from provedor where concat(nomp,' ',apellidop)="miguel corona";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consulta de dos columnas de una misma tabla

Publicado por Martha (80 intervenciones) el 08/11/2014 23:22:13
Yo creo que lo mejor que podrías hacer es concatenar los campos nombre y apellidos en un nuevo campo oculto, llamado nombre_completo y que la busqueda se realize en ese campo.
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