【发布时间】:2016-05-27 17:07:37
【问题描述】:
我有这个问题:
select
name
from
provinces
WHERE
province_id IN(1,3,2,1)
ORDER BY FIELD(province_id, 1,3,2,1)
IN() 中值的个数是动态的
如何使用给定的 ORDER BY 获取所有行甚至重复(在本例中 -> 1 )?
结果应该是这样的:
name1
name3
name2
name1
plus 我不应该使用 UNION ALL :
select * from provinces WHERE province_id=1
UNION ALL
select * from provinces WHERE province_id=3
UNION ALL
select * from provinces WHERE province_id=2
UNION ALL
select * from provinces WHERE province_id=1
【问题讨论】:
-
为什么要在 Province_id = 1 上重复?
-
什么数据库引擎?
-
使用
union all有什么问题?我们应该知道您不想使用的任何其他子句吗? -
将值放入表中,然后加入该表。
-
@MarshallTigerus 它实际上是一条路径,所以我需要分别获取名称