我以这种格式从IN
查询获取数据
SELECT * FROM wp_devices WHERE QID=’1′ and DId IN(36,71,37,39,38)
但它们以DId IN(36,37,38,39,71)
而非DId IN(36,71,37,39,38)
格式显示。
我该怎么办?
答案 0 :(得分:2)
您应该在查询中添加order by clause。 因为您的订单有点奇怪,您必须编写case workflow代码:
SELECT *
FROM wp_devices
WHERE
QID='1' and
DId IN (36,71,37,39,38)
ORDER BY
case DId
when 36 then 1
when 71 then 2
when 37 then 3
when 39 then 4
when 38 then 5
end
我认为您使用mysql是因为您有另一个标记为这样的问题。然后,您可以使用field函数简化以前的查询:
SELECT *
FROM wp_devices
WHERE
QID='1' and
DId IN (36,71,37,39,38)
ORDER BY
field( DId, 36,71,37,39,38 )
请注意,该字段使用字符串,并且隐式类型转换是maded。
答案 1 :(得分:0)
在转储之前尝试实际操作数据?每行将DId
作为行中的一个值。
如果您需要特定的排序,请在选择行并之后按顺序输出行并检索结果。