我有这个查询,我可以搜索TABLE_GLOBAL_PRODUCTS
$catglobal_sql = "
select p.*,
case when
p.specials_new_products_price >= 0.0000
and p.expires_date > Now()
and p.status != 0
then p.specials_new_products_price
else p.products_price
end price
from ".TABLE_GLOBAL_PRODUCTS." p
INNER JOIN ".TABLE_STORES." s ON s.blog_id = p.blog_id
where
MATCH (p.products_name,p.products_description) AGAINST ('%".$search_key."%')
OR p.products_name like '%".$search_key."%'
order by p.products_date_added DESC, p.products_name";
这里的问题是,当我使用Cotton Shirts
这样的短语进行搜索时,它会显示正确的结果。但是,当我只输入单个字Cotton
时,它不会显示任何结果,而是显示与输入Cotton Shirts
这样的短语时相同的结果。
答案 0 :(得分:0)
使用MATCH时使用*而不是%作为通配符...反对... 因此,代码的匹配部分应如下所示:
...
MATCH(p.products_name,p.products_description)AGAINST('*“。$ search_key。”*')
...
在MATCH中,通配符略有不同