1
(SELECT COUNT(  `ad_general`.`id` ) as no
FROM (`ad_general`)
WHERE MATCH (title, body) AGAINST (' +stack* 'IN BOOLEAN MODE) AND `user` =  '1') 
) AS count 

这个查询给了我这个错误:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用

在第 17 行的“AS count”附近

但这一个按我的预期工作。

SELECT COUNT(  `ad_general`.`id` ) as count
    FROM (`ad_general`)
    WHERE MATCH (title, body) AGAINST (' +stack* 'IN BOOLEAN MODE) AND `user` =  '1')

第一个版本有什么问题?我需要它像第一个一样工作。

4

1 回答 1

2

你不能命名这样的查询。您可以通过select在前面添加以下内容来解决此问题:

select (SELECT COUNT(  `ad_general`.`id` ) as no
        FROM (`ad_general`)
        WHERE MATCH (title, body) AGAINST (' +stack* 'IN BOOLEAN MODE) AND `user` =  '1') 
       ) AS count 

或者你可以这样做:

SELECT COUNT(  `ad_general`.`id` ) as `count`
FROM (`ad_general`)
WHERE MATCH (title, body) AGAINST (' +stack* 'IN BOOLEAN MODE) AND `user` =  '1') 
于 2013-07-08T02:19:58.327 回答