类似于 Facebook 的 PHP/MySQL 过滤搜索

标签 php mysql wordpress innodb

我正在尝试使用 PHP 和 mysql 数据库为 Wordpress 站点构建一个简单的自定义搜索,它将返回来自许多不同表的结果,例如 GroupsUsersSites,其中每个表的数据都不与正在搜索的另一个表相关。我的目标是构建类似于 Facebook 的功能,它根据结果类型对结果进行分组。

我已经构建了单独的查询,但我一直在研究如何将它们全部联系在一起,以便我可以过滤结果类型并像 Facebook 那样对它们进行相应的分组。有没有一种简单的方法可以判断结果来自哪个表,或者会完全朝着错误的方向前进?我对 mysql 了解不够,无法了解最佳实践。这是我正在运行的示例查询:

SELECT 
    name, slug
FROM 
    ".$bp->groups->table_name."                              
WHERE 
    name LIKE '%".$search_string."%'
        OR 
    name = '%".$exp_string[0]."%'
        OR 
    name IN ('".$join_string."');

最佳答案

试试这个:

SELECT 
    name, slug, '$bp->groups->table_name' as table
FROM 
    ".$bp->groups->table_name."                              
WHERE 
    name LIKE '%".$search_string."%'
        OR 
    name = '%".$exp_string[0]."%'
        OR 
    name IN ('".$join_string."');

这应该将表名输出到结果中。我不知道您以后可能想如何对其进行分组..

关于类似于 Facebook 的 PHP/MySQL 过滤搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12162957/

相关文章:

PHP Time() 到 Google Calendar Dates 时间格式

php - Zend 框架表单与 jquery

php - 从数据库问题查询嵌套关联数组

php - 这个有 2 个联合的 sql 可以最小化为没有联合吗?

php - 拉维尔 : how to add where clause using query builder?

javascript - Google Maps API v3 第二次 map 调整大小和居中

使用命名空间时找不到php Doctrine 类

mysql - sql 数据库给我这个错误

php - 从 Wordpress 用户元表中获取数据

URL 中的 wordpress 和硬编码域名