2013-06-12 144 views
0

当我删除AS子句时,此SQL查询工作得非常好。MySQL中的语法错误:AS语句

$query = "SELECT bd_brushname FROM tbl_brushdescription WHERE MATCH(bd_brushname, bd_brushdescription) AGAINST ('brushes' IN BOOLEAN MODE) AS rank"; 
    $sqlquery = mysql_query($query); 
    if($sqlquery === FALSE){ 
     die(mysql_error()); 
    } 

当我用AS,它说You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS rank' at line 1

可能有人请告诉我,为什么它不工作?

+1

可能重复[MySQL作为在WHERE语句(http://stackoverflow.com/questions/4611451/mysql-as-in-where-的地方声明) –

回答

0

别名意味着要投入你所选择的列,以:

  • 将其重命名你的输出
  • order byhaving条款

Source

中使用别名

了解您的请求,您在此处使用别名来表示条件,有什么意义?

你试图做什么?

+0

其实我想排名的结果。我想这样做:'SELECT bd_brushname FROM tbl_brushdescription WHERE MATCH(bd_brushname,bd_brushdescription)AGAINST('brushes'IN BOOLEAN MODE)AS rank WHERE MATCH(bd_brushname,bd_brushdescription)AGAINST('brushes'IN BOOLEAN MODE)' –

+0

I don如果你试图按照相关性对结果进行排序,那么你需要将相关性本身包含在你选择的列中:[可能的重复](http://stackoverflow.com/questions)/13494460/MySQL的-全文搜索顺序逐相关性) –

0

变化的 “秩”

$query = "SELECT bd_brushname AS rank FROM tbl_brushdescription WHERE MATCH(bd_brushname, bd_brushdescription) AGAINST ('brushes' IN BOOLEAN MODE)"; 
    $sqlquery = mysql_query($query); 
    if($sqlquery === FALSE){ 
     die(mysql_error()); 
    }