Question

What is wrong with my query?

SELECT ...
       MATCH(results.keywords) AGAINST('".DB::e($_POST['s'])."' IN BOOLEAN MODE) AS aaa,
       SUM( MATCH(tags.keywords) AGAINST('".DB::e($_POST['s'])."' IN BOOLEAN MODE) ) AS bbb
  FROM table1
  JOIN table2 ... JOIN table3 ...
 WHERE (aaa > 0   here the alias doesn't work!
        OR bbb > 0   here the alias doesn't work! )
GROUP BY table1.id
ORDER BY aaa DESC,  but here the alias works!
         bbb DESC  but here the alias works!

If I remove the WHERE clause works perfectly... so what is wrong with my aliases?

Was it helpful?

Solution

You need to use HAVING (here and here and somewhat less helpfull: here); the WHERE clause gets evaluated before the aliases even exist ;)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top