我在数据库里有两张这样的表,
1)视频

id        name
200119    one
200120    two
200121    three

2)会话到频道
channel_id    playlist_id   videos
50            359           200119,200120,200121

我想从videos.name表中选择所有videos,其中videos.id IN sessions_to_channels.videos
为此,我使用这个查询,
SELECT v.name FROM videos as v WHERE v.id in ( select videos from sessions_to_channels where playlist_id=359 and channel_id=50 )

但它只给了我一张唱片
id      name
200119  one

我在这里做错什么了?

最佳答案

如果在sessions_to_channels.videos中使用字符串,则必须使用FIND_in_SET。
就像

SELECT v.name
FROM videos AS v
WHERE FIND_IN_SET(v.id, (
    SELECT videos FROM sessions_to_channels WHERE playlist_id=359 and channel_id=50 )
)

关于php - MySQL查询,记录未使用IN子句选择适当,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32453916/

10-10 13:18