Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
如何在PHP中处理多个查询,包括多个临时表_Php_Mysql - Fatal编程技术网

如何在PHP中处理多个查询,包括多个临时表

如何在PHP中处理多个查询,包括多个临时表,php,mysql,Php,Mysql,这个问题与我一年前发布的[另一个问题][1]的答案有关 基本上,我需要用PHP翻译答案,我甚至不知道从哪里开始。我应该使用6个查询吗?我应该将每个查询合并为一个查询吗?我应该使用mysqli\u multi\u查询吗 我只需要一些建议和技巧,其余的我会做,我会做关于如何在PHP中实现这一点的研究 这是一个非常有效的查询,我需要用PHP进行翻译: -- Query 1 CREATE TEMPORARY TABLE t ( ID INT AUTO_INCREMENT PRIMARY KEY

这个问题与我一年前发布的[另一个问题][1]的答案有关

基本上,我需要用PHP翻译答案,我甚至不知道从哪里开始。我应该使用6个查询吗?我应该将每个查询合并为一个查询吗?我应该使用mysqli\u multi\u查询吗

我只需要一些建议和技巧,其余的我会做,我会做关于如何在PHP中实现这一点的研究

这是一个非常有效的查询,我需要用PHP进行翻译:

-- Query 1
CREATE TEMPORARY TABLE t (
    ID INT AUTO_INCREMENT PRIMARY KEY
)
SELECT
    w.work_id,
    w.name wname,
    r.sort_name rsortname,
    CONCAT(r.seo_url, '.', r.recording_id) as rurl
FROM
    WORK AS w
    JOIN recording AS r ON w.work_id = r.work_id
    JOIN `release` AS rl ON r.release_id = rl.release_id
WHERE
    r.is_performer = 1
    AND r.is_video = 0
ORDER BY
    w.work_id,
    - rl.released_year DESC,
    - rl.released_month DESC,
    - rl.released_day DESC,
    rl.release_id;

-- Query 2
CREATE TEMPORARY TABLE x
SELECT
    MIN(ID) AS ID
FROM
    t
GROUP BY
    work_id;

-- Query 3
SELECT
    work_id,
    wname,
    rurl
FROM
    x
    JOIN t ON x.ID = t.ID
ORDER BY
    rsortname;

-- Query 4, 5
DROP TEMPORARY TABLE t;
DROP TEMPORARY TABLE x;
我应该使用6个查询吗

是的,如果这些查询依赖于PHP中的变量,那么您应该使用准备好的语句来执行它们

我应该将每个查询合并为一个查询吗

绝对不是。它们不是一个查询,它们都是单独的,您应该单独执行它们

我应该使用mysqli\u multi\u查询吗


从来没有!忘记这个函数甚至存在。它很难使用,而且完全没有必要。只需在MySQL中使用准备好的语句或命令行界面即可执行管理任务。

请阅读并注意,在查询1中有2条语句。。。创建并选择。这应该是两个查询还是一个查询?@Marco怎么可能是一个查询?正如您自己所说的,它们是两条语句,因此需要您依次执行。@Marco第一个查询是create table select,请参阅,这个答案是错误的,这些查询可以组合成一个大查询。你是否应该那样做是另一个问题。每个临时表都可以由派生表(from子句中的子查询)表示,该派生表是通过生成排名在第一个临时表中自动递增的字段。