我有以下查询:
SELECT TrackID, Name, Artist, Album, TotalTime, TrackNumber, TrackCount
FROM tracks
WHERE TrackID IN (SELECT Tracks FROM playlists
WHERE ID='f8ad830c-e2d6-11e1-99d7-00132094'
LIMIT 1)
ORDER BY Artist, Album, TrackNumber
执行返回“tracks”表中的第一行,以包含从子查询返回的任何结果。截至目前,子查询返回:
41646,41696,41698,41700,41702,41704,41706,41708,41710,41712
当我将从子查询返回的上述值放入原始查询中(代替子查询)时,它会返回我期望的所有行。
为什么子查询将返回的结果限制为第一个结果,但用返回的结果替换子查询(在 PHPMyAdmin 中运行时)会返回所有结果?
最佳答案
SELECT TrackID, Name, Artist, Album, TotalTime, TrackNumber, TrackCount
FROM tracks
WHERE FIND_IN_SET(TrackID
, (SELECT Tracks
FROM playlists
WHERE ID='f8ad830c-e2d6-11e1-99d7-00132094'
LIMIT 1
)
) > 0
ORDER BY Artist, Album, TrackNumber
;
关于php - MySql Subquery IN 返回第一个结果,而不是所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12877387/