我有一个带有书签类型字段的书签表,其类型为int(11)。
要按类型对书签进行排序,我可以执行一个简单的查询:
select * from bookmarks order by type
效果很好。
除了按整数类型对书签进行排序。
在我的gui中,我将整数类型转换为字符串表示形式:
1=Great
2=Bad
3=Wow
...
以上查询结果为:
bookmarks of type Great
bookmarks of type Bad
bookmarks of type Wow
因为书签按整数类型排序。
我想得到结果:
bookmarks of type Bad
bookmarks of type Great
bookmarks of type Wow
如何在不更改字段类型的情况下对整数类型的字符串表示形式进行排序,而不会丢失像分页这样的便捷查询功能?
答案 0 :(得分:1)
您可以转换订单,以执行不在ID上的字符串:
select * from bookmarks
order by CASE
WHEN type = 1 THEN 'Great'
WHEN type = 2 THEN 'Bad'
WHEN type = 3 THEN 'Wow'
ELSE 'Zzz' END
答案 1 :(得分:1)
正式的方法是创建一个类似于这个的新类型表:
<强>类型强>
id type
1 Greate
2 Bad
3 Wow
然后在查询中你可以这样做:
Select *
From bookmarks inner join types
On bookmarks.type = types.id
Order By types.type