指定行的Codeigniter活动记录返回列名称

时间:2018-07-17 07:10:29

标签: mysql codeigniter activerecord

是否可以返回表中某行的列名?如果是这样,我该怎么办?

我有一个具有这种结构的表

----------------------------------------------------------------------------
| idx | line1 | line2 | line3 | line1_action | line2_action | line3_action |
----------------------------------------------------------------------------
|  1  |   3   |   2   |   1   |    PENDING   |    PENDING   |   APPROVED   |
----------------------------------------------------------------------------

例如,我有一个idx = 1和一个line = 2,我需要检查自己是否在idx = 1的第1、2或3行中,如何返回该列我叫什么名字?

回答了我自己的问题

$requestIdx = $this->session->userdata('request_id');
$staffDepth = 2;
$requestInfo = $this->staffrequisition_model->selectItem(array('idx'=>$requestIdx));
foreach($requestInfo as $key=>$value){
    if(preg_match('/line\d/',$key) && $value == $staffDepth) { $lineName = $key; }
}

1 个答案:

答案 0 :(得分:0)

您不能直接返回列名。

为此,您必须按照以下方式准备查询

SELECT idx, IF(line1 = 2, 'line1', if(line2 = 2, 'line2', line3 = 3, 'line3', '')) AS line, line2, line3 FROM table_name WHERE (line1 = 2 OR line2 = 2 OR line3 = 2) AND idx = 1