Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/01/2012, 08:18
JulioGaGarcia
 
Fecha de Ingreso: junio-2010
Mensajes: 51
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Error en consulta por relevancia

Gracias por tu respuesta.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Perdona que me meta, pero ¿tienes problemas de vista o de lectura?
Leo ya te dijo cómo iría:
Código MySQL:
Ver original
  1. SELECT MATCH(descripcion) AGAINST ('+clave' IN BOOLEAN MODE) relevancia
  2. FROM posts
.¿Qué parte no entendiste?
E incluso en el link que te pasó, también tienes ejemplos del caso, perfectamente aplicables:
Código MySQL:
Ver original
  1. SELECT id, body, MATCH (title,body) AGAINST
  2. ('Security implications of running MySQL as root') AS score
  3. FROM articles WHERE MATCH (title,body) AGAINST
  4. ('Security implications of running MySQL as root');

Por lo menos podrías haberte molestado en leer el link... ¿no te parece?

Respecto a los alias, tienes que entender que los alias de las columnas sólo se definen en el SELECT y los de las tablas en el FROM.
Pero por una restricción generalizada de todos los DBMS que conozco, un alias de una columna no se puede usar en el WHERE. Esto se debe a que la evaluación del WHERE se hace por cada registro devuelto, mientras que el alias de la columna sólo se aplica a la tabla resultado final. No apuntan a la misma cosa.
Sí puedes usar un alias de tabla en el WHERE, pero eso es otra cosa.
Pues debo estar muy mal de la vista, o este post se visualiza diferente en cada PC:

Código Cita::
Ver original
  1. SELECT MATCH(descripcion) AGAINST ('+clave' IN BOOLEAN MODE) relevancia

Yo sigo viendo:

Código Cita::
Ver original
  1. SELECT MATCH(descripcion) AGAINST ('+clave' IN BOOLEAN MODE) AS relevancia
  2. FROM posts.

El link ya lo conocía y lo leí íntegro y lo he vuelto a leer buscando más información.

Código Cita::
Ver original
  1. Pero por una restricción generalizada de todos los DBMS que conozco, un alias de una columna no se puede usar en el WHERE.

Eso ya lo dejó muy claro leonardo_josue (hasta ahí soy capaz de entender):
Código Cita::
Ver original
  1. En otras palabras es correcto que no se te permita colocar el AS relevancia en la sección WHERE

Código Cita::
Ver original
  1. Si, como dices, no es necesario definir el alias, ¿cómo sería la consulta correcta?
¿Qué parte de la pregunta no has entendido?

Reitero las gracias por tu interés.