使用codeigniter从mysql中检索值时遇到一个问题。
我有一个表名任务,其中有一个assigneduserid字段。
表格 - 任务:
id | title | assigneduserid
-------------------------------------
1 | Workspace | 23,21
表格 - 用户
id | title
-----------------
23 | Ashish
21 | Ritesh
在assigneduserid字段中,该字段中有两个值为23,21。
我想打印这样的用户标题: Ashish,Ritesh 来自usertable使用该assigneduserid。
此外,我还希望按 assigneduseid
中的升序设置该值我正在尝试使用echo跟随
在页面上打印该记录以下是我正在打印的代码:
<?php echo $task_row->usertitle;?>
以上代码仅打印 Ashish 。
但我想打印 Ashish,Ritesh
以下是我的模特。
function getTask($id, $is_master_admin)
{
$this->db->select('workspace.title as workspacetitle, user.title as usertitle,task.*');
$this->db->join(WORKSPACE, WORKSPACE . '.id = ' . TASK . '.workspaceid', 'inner');
$this->db->join(USER, USER . '.id = ' . TASK . '.assigneduserid', 'inner');
$this->db->from(TASK);
if (!$is_master_admin) {
$this->db->where(USER . '.id', $id);
}
$this->db->where(TASK . '.tasktypeid', '1');
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result();
} else {
return false;
}
}
先谢谢你
答案 0 :(得分:2)
使用此
function getTask($id, $is_master_admin)
{
$this->db->select('task.*, workspace.title as workspacetitle, GROUP_CONCAT( user.title ) AS usertitle,task.assigneduserid,user.id',FALSE);
$this->db->join(WORKSPACE , WORKSPACE . '.id = ' . TASK . '.workspaceid', 'inner');
$this->db->join(USER,("FIND_IN_SET(USER .id , TASK.assigneduserid)"), 'inner');
$this->db->from(TASK);
$this->db->group_by("task.id");
if (!$is_master_admin)
{
$this->db->where ("FIND_IN_SET($id, task.assigneduserid)");
}
$this->db->where(TASK . '.tasktypeid', '1');
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result();
} else {
return false;
}
}
答案 1 :(得分:1)
使用FIND_IN_SET()&amp; GROUP_CONCAT()函数
试试这个:
SELECT t.id, t.title, GROUP_CONCAT(u.title) AS userTitle
FROM Task t
INNER JOIN User u ON FIND_IN_SET(t.assigneduserid, u.id)
GROUP BY t.id
修改:: 强>
SELECT t.id, t.title, GROUP_CONCAT(u.title) AS userTitle
FROM Task t
INNER JOIN `User` u ON CONCAT(',', t.assigneduserid, ',') LIKE ('%,', u.id, ',%')
GROUP BY t.id
答案 2 :(得分:0)
@Ritesh:关注Saharsh Shah,您可以将此查询放入此命令$ this-&gt; db-&gt; query();或者您可以点击此链接执行您想要的活动http://ellislab.com/codeigniter/user-guide/database/active_record.html