在字段的concat函数的select查询中使用match

时间:2013-02-24 23:34:53

标签: mysql sql database

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

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

2 个答案:

答案 0 :(得分:0)

尝试更改

MATCH(concat_name)

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

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

答案 1 :(得分:0)

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