我正在尝试使用 PHP 和 mysql 数据库为 Wordpress 站点构建一个简单的自定义搜索,它将返回来自许多不同表的结果,例如 Groups
、Users
和 Sites
,其中每个表的数据都不与正在搜索的另一个表相关。我的目标是构建类似于 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/