2008-10-27 15 views
15

he probado las dos afirmaciones siguientes:¿Cómo O BIEN dos declaraciones ME GUSTA?

  • SELECT col FROM db.tbl WHERE col (LIKE 'str1' OR LIKE 'str2') AND col2 = num resulta en un error de sintaxis
  • SELECT col FROM db.tbl WHERE page LIKE ('str1' OR 'str2') AND col2 = num resultados en "truncado valor DOBLE incorrecto: str1" y "truncado valor DOBLE incorrectos: str2" para lo que parece ser cada resultado. Sin embargo, no se devuelven resultados.

Pensé que una de las dos afirmaciones funcionaría, pero no es así.

Respuesta

32
SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = num 
1

tratar col SELECT db.tbl DONDE (col COMO 'cadena1' o col COMO 'str2') y col2 = num

2

Piense simple:

SELECT col FROM db.tbl WHERE (col LIKE 'str1' OR col LIKE 'str2') AND col2 = ... 
2

Creo que necesita WHERE ((page LIKE 'str1') OR (page LIKE 'str2'))

1

El operador "OR" se aplica a las expresiones. "LIKE 'str1'" y "LIKE 'str2'" no son expresiones válidas, ya que el operador "LIKE" requiere tanto el lado izquierdo como el lado derecho.

page LIKE ('str1' OR 'str2') 

Primero intentaríamos O juntas 'str1' y 'str2', dando el valor VERDADERO. Luego trataría de evaluar page LIKE TRUE e informar un error.

1

USE % al inicio y al final de la cadena. Para que también verifique las Subcadenas

SELECT col FROM db.tbl WHERE (col LIKE '%str1%' OR col LIKE '%str2%') AND col2 = num 
+1

Niza. Reducido La mayor parte del trabajo –

Cuestiones relacionadas