Php mySQL向搜索功能添加功能
这个mySQL查询在wordpress数据库中搜索条目,查找标题中的相似之处Php mySQL向搜索功能添加功能,php,mysql,search,Php,Mysql,Search,这个mySQL查询在wordpress数据库中搜索条目,查找标题中的相似之处 SELECT ID, post_name, post_title, post_date FROM wp_posts WHERE wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish' AND wp_posts.post_title LIKE '%$my_text%' ORDER BY wp_posts.post_date DESC 我已经
SELECT ID, post_name, post_title, post_date
FROM wp_posts
WHERE wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish' AND wp_posts.post_title LIKE '%$my_text%' ORDER BY wp_posts.post_date DESC
我已经将它扩展到包括标签
SELECT ID, post_name, post_title, post_date
FROM wp_posts
LEFT JOIN wp_term_relationships
ON object_id = wp_posts.id
LEFT JOIN wp_terms
ON term_id = wp_term_relationships.term_taxonomy_id
WHERE wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish' AND wp_posts.post_title LIKE '%$my_text%'
OR wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish' AND wp_terms.name LIKE '%$my_text%'
这同样有效,但它增加了查询可以获取帖子的次数。例如,如果我们键入一个只出现在标题中的搜索词,但标签表中有四个不相关标签的相同帖子ID,那么它会从标题相似性中获取帖子四倍而不是一倍。显然,这个查询需要一些调整,但我对mySQL非常陌生,需要帮助。这里有一个关于UNION selects的有用链接:您可能需要UNION子句。
... WHERE
wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish'
AND (wp_posts.post_title LIKE '%$my_text%' OR wp_terms.name LIKE '%$my_text%')