Php mysql搜索 - 如果使用复数和单数搜索不工作

时间:2018-02-15 06:57:48

标签: php mysql search singular plural

如果我搜索"销售订单"它提取"销售订单"和"销售订单 s "在结果中。它用" s"取得结果。还

但如果我搜索"销售订单"它提取"销售订单"只是,但我想"销售订单"也会取。

我正在使用php mysql查询。

SELECT DISTINCT * FROM wp_posts as p 
    inner join wp_postmeta as pm on pm.post_id = p.ID 
    where (p.post_type = 'abc' or p.post_type = 'xyz') 
    and p.post_title LIKE '%sales order%' 
    or (pm.meta_key = 'xyzkeyword' and pm.meta_value LIKE '%sales order%') 
    GROUP by p.ID 
    ORDER BY p.id DESC

4 个答案:

答案 0 :(得分:0)

尝试不使用“%”

p.post_title LIKE 'sales order'

答案 1 :(得分:0)

您也可以尝试这样

and (p.post_title LIKE '%sales order%'  OR p.post_title LIKE '%sales orders%' )

我希望这能解决你的问题。

答案 2 :(得分:0)

我对此查询不太确定,但您可以检查为

SELECT DISTINCT * FROM wp_posts as p 
inner join wp_postmeta as pm on pm.post_id = p.ID 
where (p.post_type = 'abc' or p.post_type = 'xyz') 
and p.post_title LIKE '%sales%' AND  p.post_title LIKE '%order%'
or (pm.meta_key = 'xyzkeyword' and pm.meta_value LIKE '%sales order%') 
GROUP by p.ID 
ORDER BY p.id DESC

OR

SELECT DISTINCT * FROM wp_posts as p 
inner join wp_postmeta as pm on pm.post_id = p.ID 
where (p.post_type = 'abc' or p.post_type = 'xyz') 
and p.post_title LIKE '%sales%order%'
or (pm.meta_key = 'xyzkeyword' and pm.meta_value LIKE '%sales order%') 
GROUP by p.ID 
ORDER BY p.id DESC

答案 3 :(得分:0)

use MySQL Full text search,check if FULLTEXT indexes are there

SELECT DISTINCT * FROM wp_posts as p 
    inner join wp_postmeta as pm on pm.post_id = p.ID 
    where (p.post_type = 'abc' or p.post_type = 'xyz')
    match (p.post_title) against ('sales order')
    or (pm.meta_key = 'xyzkeyword' and pm.meta_value LIKE '%sales order%') 
    GROUP by p.ID 
    ORDER BY p.id DESC