为什么两个不同查询的结果在 phpMyadmin 中有不同的 UI?
Why the result of two different queries have different UI in phpMyadmin?
我有两个具有相同输出的查询(但是它们的顺序不同)。但是这两个查询的结果有不同的设计。这是其中的两张截图:
查询 1:
查询 2:
如您所见,第二个查询对每一行都有一些工具 (编辑、删除、复制)。为什么第一个查询没有?
编辑: 这是这两个查询:
查询 1:
(SELECT id, event, seen, time_stamp
FROM notifications n
WHERE id_user = 123 AND seen IS NULL
)UNION
(SELECT id, event, seen, time_stamp
FROM notifications n
WHERE id_user = 123 AND seen IS NOT NULL
LIMIT 2
)UNION
(SELECT id, event, seen, time_stamp
FROM notifications n
WHERE id_user = 123
ORDER BY (seen IS NULL) desc, time_stamp desc
LIMIT 15
)
ORDER BY (seen IS NULL) desc, time_stamp desc;
查询 2:
SELECT `id`, `event`, `seen`, `time_stamp`
FROM (SELECT `id`, `event`, `seen`, `time_stamp`, @`unread` := @`unread` + 1
FROM `notifications`, (SELECT @`unread` := 0) `unr`
WHERE `id_user` = 123 AND `seen` IS NULL
UNION ALL
SELECT `id`, `event`, `seen`, `time_stamp`, @`read` := @`read` + 1
FROM `notifications`, (SELECT @`read` := 0) `r`
WHERE `id_user` = 123 AND `seen` IS NOT NULL
AND (
@`read` < (15 - @`unread`) OR
((15 - @`unread`) < 0 AND @`read` < 2)
)
) `source`
我觉得如果系统检测到只有一个table,借给你编辑。在您的第一个查询中是三个 table 的 JOIN(即使是相同的 table),但第二个查询直接从一个 table 获取数据(这是一个连接的结果,但在最后是 mysql 像一个 table)
很好奇,但似乎是这样工作的
:)
我有两个具有相同输出的查询(但是它们的顺序不同)。但是这两个查询的结果有不同的设计。这是其中的两张截图:
查询 1:
查询 2:
如您所见,第二个查询对每一行都有一些工具 (编辑、删除、复制)。为什么第一个查询没有?
编辑: 这是这两个查询:
查询 1:
(SELECT id, event, seen, time_stamp
FROM notifications n
WHERE id_user = 123 AND seen IS NULL
)UNION
(SELECT id, event, seen, time_stamp
FROM notifications n
WHERE id_user = 123 AND seen IS NOT NULL
LIMIT 2
)UNION
(SELECT id, event, seen, time_stamp
FROM notifications n
WHERE id_user = 123
ORDER BY (seen IS NULL) desc, time_stamp desc
LIMIT 15
)
ORDER BY (seen IS NULL) desc, time_stamp desc;
查询 2:
SELECT `id`, `event`, `seen`, `time_stamp`
FROM (SELECT `id`, `event`, `seen`, `time_stamp`, @`unread` := @`unread` + 1
FROM `notifications`, (SELECT @`unread` := 0) `unr`
WHERE `id_user` = 123 AND `seen` IS NULL
UNION ALL
SELECT `id`, `event`, `seen`, `time_stamp`, @`read` := @`read` + 1
FROM `notifications`, (SELECT @`read` := 0) `r`
WHERE `id_user` = 123 AND `seen` IS NOT NULL
AND (
@`read` < (15 - @`unread`) OR
((15 - @`unread`) < 0 AND @`read` < 2)
)
) `source`
我觉得如果系统检测到只有一个table,借给你编辑。在您的第一个查询中是三个 table 的 JOIN(即使是相同的 table),但第二个查询直接从一个 table 获取数据(这是一个连接的结果,但在最后是 mysql 像一个 table)
很好奇,但似乎是这样工作的
:)