php - 错误 SET SQL_BIG_SELECTS=1 或 SET MAX_JOIN_SIZE=#

标签 php mysql sql

我的查询遇到了问题......

SELECT 
keywords.keyword,
keywords.keyid,
sources.s_title,
sources.s_disc,
sources.s_link,
sources.sourceid,
sources.s_link
FROM link_ks
INNER JOIN keywords ON link_ks.keyid = keywords.keyid
INNER JOIN sources ON link_ks.sourceid = sources.sourceid
INNER JOIN thumbsup_items ON link_ks.sourceid = thumbsup_items.name
WHERE link_ks.keyid = :keyid 
order by thumbsup_items.votes_up desc,thumbsup_items.votes_down asc,(thumbsup_items.votes_up+thumbsup_items.votes_down) desc

当数据库很小的时候一切都很好但是随着数据库变大我得到这个错误

 The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET
 SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay

但是当我删除

 order by thumbsup_items.votes_up desc,thumbsup_items.votes_down asc,
(thumbsup_items.votes_up+thumbsup_items.votes_down) desc

问题得到解决......但是order by对于这个查询很重要......

有没有其他方法可以编写这个查询或者我该如何解决这个问题??

最佳答案

那个 MAX_JOIN_SIZESQL_BIG_SELECTS 不会让您运行会挂起服务器的长查询。

在运行查询之前使用它:

 SET OPTION SQL_BIG_SELECTS = 1

或者使用这个:

SET SQL_BIG_SELECTS=1

chek this

关于php - 错误 SET SQL_BIG_SELECTS=1 或 SET MAX_JOIN_SIZE=#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22630238/

相关文章:

MySql。我怎样才能从2个表中得到计数

mysql - SQL CSV 跨表导入/导出发布数据

php - 脚本向 php 中的注册用户发送自动生日祝福时出错

java - 当涉及存储函数时,有没有办法提高 Hibernate 生成的查询的性能?

php - Wordpress 网站中的 fatal error : Class 'DOMDocument' not found,

php - index.php 之后的目录层次结构

mysql - 在同一表中插入或更新另一列时触发更新列

mysql - 在 MySQL 表上设置有限的行数,并删除旧的以释放空间

php - 如何打印这个多维数组?

javascript - 通过将 json 值附加到 URL 并按时间间隔刷新来循环页面 URL