SQL - errores con operador LIKE y AND

 
Vista:

errores con operador LIKE y AND

Publicado por Antonio (2 intervenciones) el 26/08/2012 08:07:30
Hola gracias por echar una mano
En esta consulta
$query_rsResultados = "SELECT * FROM tblproductos WHERE intVisible = 1 AND srtRferencia LIKE $colname_rsResultados OR srtdescripcion LIKE $colname_rsResultados";

Cuando no cumple la condicion intVisible=1 me da error
You have an error in your SQL syntax; check the manual that
No se donde cometo el errror, Si alguien puede ayudarme se lo agradecería enormemente.
Gracias y un saludo.
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

errores con operador LIKE y AND

Publicado por leonardo_josue (1173 intervenciones) el 27/08/2012 16:30:21
Hola Antonio:

Algunas consideraciones que debes tomar en cuenta:

Primero, cuando utilices operadores AND y OR en una sentencia WHERE debes hacer uso de paréntesis, ya que no tienen la misma jerarquía... en matemáticas tienes esto:

1
2
2 + 3 * 5 = 17
(2 + 3) * 5 = 25


En SQL pasa lo mismo... el operador AND tiene mayor jerarquía que el operador OR, por lo tanto deberías utilizar algo como esto:

...
1
2
3
WHERE intVisible = 1 AND
(srtRferencia LIKE '$colname_rsResultados' OR
srtdescripcion LIKE '$colname_rsResultados')


Segundo, el operador LIKE se utiliza con cadenas por lo tanto EL ARGUMENTO DEBE IR ENTRE COMILLAS

1
2
...
WHERE campo LIKE '%algo%'


El uso de caracteres comodín (%, _) es primordial para usar LIKE, si no los estás utilizando entonces no tiene caso utilizar LIKE y deberías utilizar (=).

Finalmente, valida que el parámetro $colname_rsResultados no esté llegando vacío al momento de construir la consulta.

Saludos
Leo.
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

errores con operador LIKE y AND

Publicado por Antonio (2 intervenciones) el 29/08/2012 00:49:06
Gracias por responder Leo,
aunque aún así me sale error. Lo que intento hacer es un buscador básico para que me muestre los resultados de una tabla de mi base de datos y siempre lo he hecho con la siguiente consulta sin problemas
$query_rsResultados = sprintf("SELECT * FROM tblproductos WHERE CONCAT (srtRferencia, srtdescripcion ) LIKE %s ORDER BY srtRferencia DESC", GetSQLValueString("%" . $colname_rsResultados . "%", "text"));
pero esta vez queria añadir un campo intVisible para que me muestre solo los resultados que quiero.
Pero siempre me sale el mismo errror de error.
Gracias de nuevo y un saludo
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

errores con operador LIKE y AND

Publicado por Bko (1 intervención) el 09/07/2014 20:31:14
Hola leonardo-josue.
Solo quería saber si el operador LIKE puede hacer referencia a los campos que hay en una columna que contengan parte de los datos de otra columna de otra tabla.
Ejemplo:
UPDATE `web145`.`products_images`,`products` SET `products_images`.`products_id` = `products`.`products_id` WHERE `products_images`.`images` LIKE "%"+`products`.`products_model`+"%";

Los datos de "images" deben contener dentro los datos de "product_model" para que se produzca la condición.

Ando un poco perdido con este tema pues solo conozco el uso de LIKE para datos concretos y no para los datos de otra tabla.
Espero que puedas echarme una mano.
Gracias.
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