我有一个搜索查询,它在数据库上执行全文搜索。
$sql = "SELECT
*
FROM
`tbl_auction_listing` AS `al`
JOIN
`tbl_user` AS `u` ON `al`.`user_id` = `u`.`user_id`
LEFT JOIN
`tbl_gallery_details` AS `gd` ON `al`.`user_id` = `gd`.`user_id`
LEFT JOIN
`tbl_self_represented_details` AS `sr` ON `u`.`user_id` = `sr`.`user_id`
WHERE
`al`.`status` = '" . ACTIVE . "'
AND
`al`.`start_date` < NOW()
AND
`al`.`end_date` > NOW()
AND
MATCH(`al`.`listing_title`,
`al`.`description`,
`al`.`provenance`,
`al`.`title`,
`al`.`artist_full_name`,
`al`.`artist_first_name`,
`al`.`artist_last_name`,
`sr`.`artist_name`,
`gd`.`gallery_name`,
`u`.`username`) AGAINST('$search_query' IN BOOLEAN MODE)";
当我搜索“Cardozo,Horacio”或“cardozo”或“horacio”时,我没有得到任何结果,但是我知道数据库中有一个艺术家有 2 条记录,艺术家_full_name = Cardozo,Horacio。
如果我删除所有 MATCH 字段并且只有al
. artist_full_name
我得到 2 个结果。如果我添加al
. description
我得到 1 个结果,因为描述中存在“Horacio Cardozo”。
如果在任何 MATCH 字段中满足任何条件(任何搜索查询词),是否有办法让搜索返回所有记录?我尝试删除 IN BOOLEAN MODE 但产生了相同的结果。