Mysql 如何计算联接查询中的结果
为了计算结果,我首先提出了添加第2行,但是添加第2行只返回一行结果和计数。如何在这种情况下同时获得结果和计数?您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……它甚至可能会增加处理开销。您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……甚至可能会增加处理开销。将查询更改为:Mysql 如何计算联接查询中的结果,mysql,Mysql,为了计算结果,我首先提出了添加第2行,但是添加第2行只返回一行结果和计数。如何在这种情况下同时获得结果和计数?您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……它甚至可能会增加处理开销。您最好只进行第二次查询以获得计数。您可以尝试嵌入“SELECT COUNT()”子查询来代替“COUNT(*)as COUNT)”,但我认为嵌入子查询不会大大降低开销……甚至可能会增加处理开销。
select music.*
,count(*) as count
FROM music
JOIN music_tagmap ON music.id = music_tagmap.music_id
JOIN tag ON music_tagmap.tag_id=tag.id
WHERE tag.content = ...
LIMIT 10 OFFSET 0;
然后在完成后运行第二个查询:
select SQL_CALC_FOUND_ROWS music.*
FROM music
JOIN music_tagmap ON music.id = music_tagmap.music_id
JOIN tag ON music_tagmap.tag_id=tag.id
WHERE tag.content = ...
LIMIT 10 OFFSET 0;
这将为您提供在第一次查询中选择的行数,就像没有LIMIT语句一样。将查询更改为:
select music.*
,count(*) as count
FROM music
JOIN music_tagmap ON music.id = music_tagmap.music_id
JOIN tag ON music_tagmap.tag_id=tag.id
WHERE tag.content = ...
LIMIT 10 OFFSET 0;
然后在完成后运行第二个查询:
select SQL_CALC_FOUND_ROWS music.*
FROM music
JOIN music_tagmap ON music.id = music_tagmap.music_id
JOIN tag ON music_tagmap.tag_id=tag.id
WHERE tag.content = ...
LIMIT 10 OFFSET 0;
这将为您提供在第一次查询中选择的行数,就像没有限制语句一样。您是否希望获得查询匹配的行总数(限制之外)?您是否希望获得查询匹配的行总数(限制之外)?