Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql “创建临时表”包含除“内部选择”之外的所有其他行_Mysql - Fatal编程技术网

Mysql “创建临时表”包含除“内部选择”之外的所有其他行

Mysql “创建临时表”包含除“内部选择”之外的所有其他行,mysql,Mysql,我想创建一个临时文件,里面有一些行,以便在过程中进行一些操作。代码非常简单: CREATE TEMPORARY TABLE tmp_stack ENGINE=MEMORY AS ( SELECT users.id AS to_user_id, users.rating AS rating, users.lat AS lat, users.lng AS lng FROM users USE KEY (generating_stack) WHERE use

我想创建一个临时文件,里面有一些行,以便在过程中进行一些操作。代码非常简单:

CREATE TEMPORARY TABLE tmp_stack ENGINE=MEMORY AS (
    SELECT users.id AS to_user_id, users.rating AS rating, users.lat AS lat, users.lng AS lng

    FROM users USE KEY (generating_stack)

    WHERE
        users.lat BETWEEN 53.8866 AND 54.8286 AND
        users.lng BETWEEN 17.8999 AND 19.3999

    LIMIT 10
);
它可以工作,但是我的tmp_堆栈表有完全其他的行,这要感谢SELECTINDECREATE临时查询!看看:

而CREATE TEMPORARY中的唯一查询是:


发生了什么事?我不能在这里使用ORDER BY,因为它的运行速度慢了好几倍。

如果没有ORDER BY,您将以“随机”顺序获得记录。通过从两组不同的随机“有序”记录中只挑选前10个,当然每次的结果可能不同

我不能在这里使用ORDER BY,因为它的速度慢了好几倍

但是,如果你想得到一致的结果,你必须


(如果“太慢”,请检查是否设置了正确的索引。)

如果没有ORDER BY,您将以“随机”顺序获得记录。通过从两组不同的随机“有序”记录中只挑选前10个,当然每次的结果可能不同

我不能在这里使用ORDER BY,因为它的速度慢了好几倍

但是,如果你想得到一致的结果,你必须


(如果“太慢”,请检查是否设置了正确的索引。)

如果没有ORDER BY,您将以“随机”顺序获得记录。通过从两组不同的随机“有序”记录中只挑选前10个,当然每次的结果可能不同。“我不能在这里使用ORDER BY”-如果你想要一致的结果,你必须这样做。(如果“太慢”,请检查是否设置了适当的索引。)@CBroe您应该添加您的评论作为答案。谢谢您的回答。随机排列的记录对我来说不是问题。问题是,为什么这两个SELECT完全返回其他结果?我不能运行这么多次,每次结果都是一样的。好的@CBroe,你说得对。我有无效的索引,所以这就是为什么ORDER BY运行得非常慢。谢谢:)如果没有ORDER BY,您将以“随机”顺序获得记录。通过从两组不同的随机“有序”记录中只挑选前10个,当然每次的结果可能不同。“我不能在这里使用ORDER BY”-如果你想要一致的结果,你必须这样做。(如果“太慢”,请检查是否设置了适当的索引。)@CBroe您应该添加您的评论作为答案。谢谢您的回答。随机排列的记录对我来说不是问题。问题是,为什么这两个SELECT完全返回其他结果?我不能运行这么多次,每次结果都是一样的。好的@CBroe,你说得对。我有无效的索引,所以这就是为什么ORDER BY运行得非常慢。谢谢:)