我正在使用MariaDB,我试图创建一个查询,更新我的照片表的布尔列is_popular
,名为Pics
。
为了找出哪些照片是“流行”的,我从整个表中选择前10名。然后,我希望将前10名的照片设置为is_popular
字段的true
。
我能想到的方法是这样的:
UPDATE Pics
SET is_popular=true
WHERE id=(
SELECT p.id
FROM Pics p
WHERE p.approved=true
ORDER BY p.points
DESC LIMIT 10);
字符串
但是我得到一个这样的错误:ERROR 1242 (21000): Subquery returns more than 1 row
我应该如何创建查询?
2条答案
按热度按时间2lpgd9681#
ORDER BY
和LIMIT
子句进行 * 单表 * 更新。因此,您可以编写简单的查询:字符串
cfh9epnr2#
以下是使用
INNER JOIN
的方法:字符串
Demo here