Поиск PHP MySQL — Поиск не работает, если с множественного и единственного числа

Если я ищу «заказ на продажу», он выбирает «заказ на продажу» и «заказ на продажу»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

-1

Решение

Попробуйте с этим без «%»

p.post_title LIKE 'sales order'
0

Другие решения

Вы также можете попробовать вот так

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

Я надеюсь, что это решит вашу проблему.

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

ИЛИ ЖЕ

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
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
0
По вопросам рекламы [email protected]