Php 如何在Codeigniter中对特定/某些行始终位于顶部的表进行排序?

Php 如何在Codeigniter中对特定/某些行始终位于顶部的表进行排序?,php,mysql,codeigniter,Php,Mysql,Codeigniter,如何使用活动记录在Codeigniter中对该查询进行编码 "SELECT * FROM `my_table` ORDER BY clm_name != 2 ASC" 您应该使用别名,例如使用case语句将所需的值分配给别名列,并按别名名称分配顺序 $this->db->select(' col1, col2 , case clm_name when !=2 then 100 else clm_name end as my_clm_name'); $this-&g

如何使用活动记录在Codeigniter中对该查询进行编码

"SELECT * FROM `my_table` ORDER BY clm_name != 2 ASC"

您应该使用别名,例如使用case语句将所需的值分配给别名列,并按别名名称分配顺序

$this->db->select(' col1, col2 , 
        case clm_name when !=2 then 100 else clm_name end as my_clm_name');
$this->db->from('my_table');
$this->db->order_by('my_clm_name   asc'); 

如果您想将
picu id=2
放在顶部始终,并对
pic\u id
的其余部分使用自然顺序(
升序/降序),请按照下面给出的查询进行操作:

SELECT * 
FROM pictures
ORDER BY (pic_id <> 2) , pic_id ASC;
注意:

MySQL布尔表达式解析为
0/1

因此,对于
picu id 2
(picu id 2)返回0
,则order by看起来像
order by 0,
,order by看起来像
order by 1,
对于
2
以外的其他pic id,您不能使用操作符in order by clm\u name!=2(您应该使用按clm_名称ASC订购)您可以在where.中使用Operator。。请更好地解释你们的目标,我知道CodeIgniter order_by()方法不接受运算符。我想按id按升序对表进行排序,但希望在选择的第一个位置选择某些行/单行!
SELECT * 
FROM pictures
ORDER BY (pic_id = 2) , pic_id ASC;