1
我已保存的日期時間表...我需要用mysql來計算0D 0H0米0格式的持續時間來顯示它在數據表:MySQL的計算僅第一行
+----+---------------------+
| id | playtime |
+----+---------------------+
| 2 | 08:58:24 20/06/2017 |
| 1 | 08:57:33 20/06/2017 |
+----+---------------------+
這是我的查詢:
SELECT (SELECT GROUP_CONCAT(
TIMESTAMPDIFF(day, live.playtime, NOW()) , 'd ',
MOD(TIMESTAMPDIFF(hour, live.playtime, NOW()), 24), 'h ',
MOD(TIMESTAMPDIFF(minute, live.playtime, NOW()), 60), 'm ',
MOD(TIMESTAMPDIFF(second, live.playtime, NOW()), 60), 's'
) FROM live) AS duration;
的問題是,只有第一個ID計算和其他IDS被忽略....我怎麼能返回多個結果每個ID計算方法爲時間?
我需要回到這樣的:
+-----------------------------+
| duration |
+-----------------------------+
| 0d 0h 13m 50s,0d 0h 12m 59s |
+-----------------------------+
| 0d 0h 11m 12s,0d 0h 6m 9s |
+-----------------------------+
更新的全QUERY:
SELECT SQL_CALC_FOUND_ROWS live.id, live.user, live.player,
SUBSTRING_INDEX(streams.channel, '_', -1) AS channel, bouquets.bouquet,
DATE_FORMAT(live.playtime, '%H:%i:%s %d/%m/%Y') AS playtime,
(SELECT CONCAT(
TIMESTAMPDIFF(day, live.playtime, NOW()) , 'd ',
MOD(TIMESTAMPDIFF(hour, live.playtime, NOW()), 24), 'h ',
MOD(TIMESTAMPDIFF(minute, live.playtime, NOW()), 60), 'm ',
MOD(TIMESTAMPDIFF(second, live.playtime, NOW()), 60), 's'
) FROM live GROUP BY live.id LIMIT 1) AS duration,
resellers.nick, live.ip, servers.server, live.id, live.id
FROM live LEFT JOIN streams ON live.stream=streams.id LEFT JOIN bouquets ON
live.bouquet=bouquets.id LEFT JOIN resellers ON live.reseller=resellers.id
LEFT JOIN servers ON live.server=servers.id
ORDER BY live.id desc LIMIT 0, 10;
你試過添加'GROUP BY live.id'嗎? – FMashiro
我已經嘗試過,然後mysql給我的錯誤,子查詢返回更多的1行...我有兩個選擇主查詢,所以這是子查詢 – John
它現在返回什麼呢? – FMashiro