基于输入数组进行查询,并以相同的顺序获得相同的结果

时间:2014-07-17 15:59:21

标签: mysql sql mysqli mysql-workbench

我希望获得特定uuid的scene_id数组的活动状态;例如,输入将是(1,2,3)和uuid = 2中的scene_id,因此它应该以与传递的scene_id相同的顺序返回(1,0,1)

scene_id  uuid active
1           2   1
3           2   1
5           2   1
7           2   1
1           3   1
2           3   1
5           3   1
5           4   1
1           4   1
1           8   0

我试过了:

select active from likes where scene_id in (1,2,3) and uuid=2

但它返回(1,1);它忽略0,因为没有scene_id = 2和uuid = 2 如果您需要更多说明,请告诉我们!

1 个答案:

答案 0 :(得分:0)

如果您可以将特定的uuid记录插入新表中,那么更容易:

insert into newTable
    select scene_id, uid
        from likes
        where scene_id in(1,2,3) and uuid=2

然后你的查询应该是这样的:

select ifNull(active, 0) as r 
from
    likes
        left join newTable on likes.scene_id=newTable.sceneId and likes.uuid=newTable.uuid

您也可以为最后一个查询指定特定排序。