PHP/MySQL 子查询返回多于 1 行

标签 php mysql sql

这可能已被问到,但由于我是一个庞大的 PHP/MySQL 菜鸟,我真的不知道我在寻找什么。我正在执行以下查询:

SELECT shortlink_analytics.shortlink AS short, 
COUNT(shortlink_analytics.shortlink) AS shortcount, 
(SELECT link FROM shortlinks WHERE shortlinks.shortlink = shortlink_analytics.shortlink)    AS shLink 
FROM shortlink_analytics JOIN shortlinks ON shortlink_analytics.shortlink =   shortlinks.shortlink 
GROUP BY shortlink_analytics.shortlink 
ORDER BY COUNT(shortlink_analytics.shortlink) DESC LIMIT 10

这曾经有效,但在上周重新访问它后,我注意到输出没有有效,而是显示了以下错误:

Subquery returns more than 1 row

在研究了代码之后,我发现问题出在(我认为!)以下方面(但我不太确定):

GROUP BY shortlink_analytics.shortlink 
ORDER BY COUNT(shortlink_analytics.shortlink) DESC LIMIT 10

谁能解释一下:

  • 我哪里做错了?
  • 关于为什么它工作一个月然后停止工作的可能原因?
  • 解决我的问题的方法是什么?

最佳答案

这部分是子查询:

(SELECT link FROM shortlinks WHERE shortlinks.shortlink = shortlink_analytics.shortlink)

你能简单地LIMIT它到 1 行吗?

(SELECT link FROM shortlinks WHERE shortlinks.shortlink = shortlink_analytics.shortlink LIMIT 1)

您应该尝试找出您的数据返回多行的原因,您甚至可能需要ORDER BY 以确保返回正确的行。

关于PHP/MySQL 子查询返回多于 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16837319/

相关文章:

mysql - mysql中如何查找给定值出现在哪些表中

javascript - ajax,变量未定义?

mysql 如果不存在则创建用户

javascript - Wordpress - 针对个人 POST,而不是 POST 类型。 AJAX/PHP

php - 在社交网络系统中处理 mysql 连接的最佳实践

mysql - 如何使用脚本更新 BLOB 值(MySQL 文件)?

mysql替换字符串+下一个字符

mysql - 查询结果不正确

php - 如何使用 PHP 路由和 .htaccess 包含 CSS/JS 和其他文件

php - 在 wordpress 中检测主页有哪些不同的方法?