我的表中有一个条目列表。有些条目很特别,有一个标记" is_premium"设为true。我现在想要从我的表中获取一个列表,其中所有高级条目都在顶部,但也由兰特订购。 问题是在保费条目之后应该显示正常条目。但他们不应该被分类兰特。它们应该按照published_date和update_datetime等属性进行排序。
我目前的解决方案是这个查询:
SELECT
first_table.*
FROM
first_table
WHERE
CURDATE() BETWEEN published_date AND DATE_ADD(published_date,INTERVAL valid_days DAY)
ORDER BY
is_premium DESC,
(CASE WHEN is_premium THEN rand()END)
published_date DESC,
update_date DESC
我现在的问题是,不仅高级条目设置了排序值,还设置了正常条目。我不知道如何解决这个问题。
- - - - - - - - EDIT 感谢Gordon Linoff,我找到了解决方案。
import json
body = '{"mode":"sync","message":"43b","messages":[{"node1":44,"node2":45}]}'
j = json.loads(body)
v1 = "foo"
v2 = "bar"
j["messages"][0]["node1"] = v1
j["messages"][0]["node2"] = v2
print(json.dumps(j))
答案 0 :(得分:1)
我认为您只需要一个额外的ORDER BY
密钥:
ORDER BY is_premium DESC,
(CASE WHEN is_premium THEN rand() END),
sorting DESC,
published_date DESC,
update_date DESC