php - MySql Subquery IN 返回第一个结果,而不是所有结果

标签 php mysql subquery

我有以下查询:

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/

相关文章:

php - 在 PHP 中获取两个查询的总数

php - 想要使用多个术语时查询中 LIKE 子句的顺序

mysql - 引用外部查询/子查询的最佳方式?

php - mysql_fetch_array 只返回一行

php加入相似结果

mysql - sql从列中选择某些项目

Mysql 查询只查找精确值?

mysql - WHERE [这些值中的 1 个] IN [这些值中的 1 个]

mysql - 如何从mysql中的另一个表按COUNT更新

php - 如何从 MySQL 数据库向 PHP 显示原始值