Sql 如何向Codeigniter中的select查询结果添加变量值?
我有一个select查询,它输出了几行。查询正在运行,但我需要的是,我想在上面的结果中插入一个具有值的自定义列。 我在PostgreSQL中使用Codeigniter 3。这个查询看起来像Sql 如何向Codeigniter中的select查询结果添加变量值?,sql,postgresql,codeigniter,Sql,Postgresql,Codeigniter,我有一个select查询,它输出了几行。查询正在运行,但我需要的是,我想在上面的结果中插入一个具有值的自定义列。 我在PostgreSQL中使用Codeigniter 3。这个查询看起来像 SELECT * FROM tbl_name ORDER BY timestamp ASC LIMIT 6; 我得到的结果是 Array ( [0] => Array ( [id] => 1 [title] => Ad
SELECT * FROM tbl_name ORDER BY timestamp ASC LIMIT 6;
我得到的结果是
Array
(
[0] => Array
(
[id] => 1
[title] => Adventure Honeymoon
[nights] => 5
[price] => ₹37,000.00
[discount] => 0
)
[1] => Array
(
[id] => 2
[title] => Wild Side Of Kerala
[nights] => 4
[price] => ₹24,000.00
[discount] => 0
)
...
)
我想添加一个名为“category”的自定义列,其结果如下所示
Array
(
[0] => Array
(
[id] => 1
[title] => Adventure Honeymoon
[nights] => 5
[price] => ₹37,000.00
[discount] => 0
[category] => Honeymoon Tours
)
[1] => Array
(
[id] => 2
[title] => Wild Side Of Kerala
[nights] => 4
[price] => ₹24,000.00
[discount] => 0
[category] => Wild Life Tours
)
...
)
快速帮助将不胜感激。试试这个
型号
public function get_data(){
$query = $this->db->select('*')
->from('tlb_name')
->order_by('timestamp', 'ASC')
->limit(6)
->get();
return $query->result_array();
}
控制器
public function custom_addition(){
$data = $this->model_name->get_data();
foreach($data as $row){
$row['category'] = 'Value';
}
print_($data);
}
$data
查询结果您将使用case或static或joining表根据条件添加列和值。
你必须改变吗?根据要求设置值/列名称:
SELECT T1.*, (case when T1.column_name = ? then ? else ? end) as 'CutomColumnName'
FROM TableName T1
ORDER BY T1.timestamp ASC
LIMIT 6;
例:
或
从何处获取或分配类别值?@jainvikram444我有一个自定义类别列表数组。它在数据库表中或PHP数组中?这有点奏效,只生成最后一个结果行,而我在模型中将结果返回给控制器。查询结果中有6行。只有最后一行获得了
$data['category']
的值。如果我运行查询并返回相同的行而不与foreach循环,则只得到一行。在foreach循环后,首先检查数据print\r($data)代码>让我们。
SELECT T1.*,
(case when T1.CategoyId=1 then 'Category-1'
when T1.CategoyId=2 then 'Category-2'
else 'Not Found'
end) as 'CutomColumnName'
FROM TableName T1
ORDER BY T1.timestamp ASC
LIMIT 6;
SELECT T1.*, C1.name
FROM TableName T1
left outer join category C1 on C1.id=T1.category_id
ORDER BY T1.timestamp ASC
LIMIT 6;