如何在PHP中处理多个查询,包括多个临时表
这个问题与我一年前发布的[另一个问题][1]的答案有关 基本上,我需要用PHP翻译答案,我甚至不知道从哪里开始。我应该使用6个查询吗?我应该将每个查询合并为一个查询吗?我应该使用mysqli\u multi\u查询吗 我只需要一些建议和技巧,其余的我会做,我会做关于如何在PHP中实现这一点的研究 这是一个非常有效的查询,我需要用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
-- 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子句中的子查询)表示,该派生表是通过生成排名在第一个临时表中自动递增的字段。