我的表数据是这样的
身份证 | 姓名 | 订购 |
---|---|---|
1 | 英语 | 0 |
2 | 意大利语 | 1 |
3 | 西班牙语 | 2 |
4 | 印地语 | 1 |
5 | 孟加拉语 | 3 |
6 | 泰米尔语 | 2 |
我的询问
$this->db->select('*');
$this->db->from('languages');
$this->db->order_by('order','asc');
$query = $this->db->get();
我想要这样的数据 - 1,1,2,2,3,0
身份证 | 姓名 | 订购 |
---|---|---|
2 | 意大利语 | 1 |
4 | 印地语 | 1 |
3 | 西班牙语 | 2 |
6 | 泰米尔语 | 2 |
5 | 孟加拉语 | 3 |
1 | 英语 | 0 |
order = 0 是一个布尔值,当值为 1 时计算结果为 1,否则为 0。order 部分按升序对其余值进行排序。
SELECT o.*
FROM order_1
ORDER BY `order`= 0, `order`;
参见示例此处