gpt4 book ai didi

mysql - SQL - 使用列名的值作为参数

转载 作者:行者123 更新时间:2023-11-29 08:18:38 25 4
gpt4 key购买 nike

我有一个 SQL 查询来获取用户的“喜欢”数量。有两张不同的表,一张表保存不同的用户数据(不是喜欢的数量)。另一个表保存点赞日志,例如谁点赞、谁收到点赞、点赞时间等。我创建了最受点赞用户的前十名列表。

我想知道是否可以在运行查询时使用列的当前值作为参数,如下所示:

SELECT `username` FROM `users` ORDER BY (SELECT COUNT(*) FROM `likes` WHERE `liked_user`=?) LIMIT 10

其中问号将替换为表示用户名当前值的内容(我假设 SQL 必须执行某种循环才能获取其结果)

我的替代方案是在用户表中有一列保存点赞数,然后根据该列进行排序,但我想知道查询是否可以通过查看点赞日志来执行相同的工作。

最佳答案

是的,你可以做到。应该很简单:

SELECT u.`username`
FROM `users` u
ORDER BY (SELECT COUNT(*)
FROM `likes` l
WHERE l.`liked_user` = u.`username`)
LIMIT 10

您也可以在没有子查询的情况下执行相同的操作:

SELECT u.`username`
FROM `users` u
JOIN `likes` l ON l.`liked_user` = u.`username`
GROUP BY u.`username`
ORDER BY COUNT(*)

关于mysql - SQL - 使用列名的值作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20025753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com