0

为什么运行此查询时会出现错误?

SELECT 
   `site_members`.`username`,
   `site_members`.`email`,
   `site_members`.`ID`,
   `site_members`.`firstName`,
   `site_members`.`lastName`,
   `site_members`.`avatar`,
   `site_members`.`avatar_status`,
   `site_members_privacy`.`searchable_profile`,
   CONCAT(firstName , ' ', lastName ) AS `concat_name`,
   `site_members_privacy`.*
FROM `site_members`
LEFT JOIN 
    `site_members_privacy` 
        ON site_members.ID = site_members_privacy.memberID 
        WHERE (email LIKE '%test%' OR CONCAT(firstName , ' ', lastName ) LIKE '%test%')
        OR (MATCH(concat_name) AGAINST('test' IN BOOLEAN MODE)) 
ORDER BY `firstName` ASC, `lastName` ASC, `username` ASC LIMIT 30
4

2 回答 2

0

这不是MATCH()工作方式——您需要为它提供一个以逗号分隔的要搜索的字段列表。据推测,这些将是您用于FULLTEXT索引的字段。

于 2013-02-25T01:36:19.350 回答
0

尝试改变

MATCH(concat_name)

MATCH(CONCAT(firstName , ' ', lastName))

这是一种猜测,但我认为你必须这样做。

于 2013-02-24T23:40:07.860 回答