我有一张桌子users
,我有一个简单的搜索查询:
SELECT *
FROM users
WHERE username LIKE 'rya%'
LIMIT 10
我还有另一个名为的表follows
,它基本上是其他用户关注的用户列表。我将上述查询修改为仅在特定用户所关注的范围内进行搜索:
SELECT users.*
FROM follows
INNER JOIN users ON users.id = follows.following_id
WHERE username LIKE 'rya%' AND follows.follower_id = 18
LIMIT 10
大多数时候,上面的查询只返回几个结果(因为我没有搜索整个用户表)。
我想要做的是结合上述 2 个查询,返回与某个字符串匹配的用户名的 10 个结果的最大值,首先列出用户的关注,然后搜索整个用户表。
我已经有了一个解决方案,但它需要在应用程序级别执行此操作,首先运行第二个查询,然后首先运行两个查询。有没有办法可以在 1 个查询中完成所有这些操作?
谢谢