Php 使用join(codeigniter)从单个字段中检索并打印逗号分隔符后的值

Php 使用join(codeigniter)从单个字段中检索并打印逗号分隔符后的值,php,mysql,sql,codeigniter,select,Php,Mysql,Sql,Codeigniter,Select,我在使用codeigniter从mysql检索值时遇到了一个问题 我有一个表名任务,其中有一个字段是assigneduserid 表格-任务: id | title | assigneduserid ------------------------------------- 1 | Workspace | 23,21 <?php echo $task_row->usertitle;?> SELECT t.id, t.title, GROUP_CONCAT(u.

我在使用codeigniter从mysql检索值时遇到了一个问题

我有一个表名任务,其中有一个字段是assigneduserid

表格-任务:

id  | title     | assigneduserid
-------------------------------------
1   | Workspace | 23,21
<?php echo $task_row->usertitle;?>
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
表格-用户

id  | title 
-----------------
23  | Ashish
21  | Ritesh
在assigneduserid字段中,该字段中有两个值,即23,21

我想打印两个usertitle,如下所示:Ashish,Ritesh,使用分配的serid从usertable打印

我还想按升序设置该值,即assigneduseid

我正在尝试使用echo在页面上打印该记录,如下所示

以下是我正在打印的代码:

id  | title     | assigneduserid
-------------------------------------
1   | Workspace | 23,21
<?php echo $task_row->usertitle;?>
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
感谢您提供的高级

使用和功能

试试这个:

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
编辑::

id  | title     | assigneduserid
-------------------------------------
1   | Workspace | 23,21
<?php echo $task_row->usertitle;?>
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

@Ritesh:跟随Saharsh Shah,您可以将此查询放入命令$this->db->query();或者您也可以按照此链接做您想做的事情

使用此

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;
}

}

@Ritesh我从未使用过codeigniter。我只能给你MySQL格式的解决方案。对不起。你必须自己试试。这就是为什么我标记了codeigniter,但你编辑并删除了该标记。还有其他方法吗??因为在_集中查找_将不适用于codeigniter@Ritesh检查我的最新答案。试试看,那会有用的。也许你是对的,但我不知道如何在codeigniter中实现。我不能规范化我的表,因为它是由我的前辈创建的。所以我不能感谢你,也许是时候告诉他们谁是大四的了;)