如何从 Laravel 中的表中获取逗号分隔值

问题描述 投票:0回答:5

这是我的类别表

id  | name
 1    a
 2    b
 3    c
 4    d

其中我需要以逗号分隔的方式获取12的值,即a,b

我尝试过这样的事情:

$ids = array('0'=>1,'1'=>2);
\DB::select('SELECT group_concat(name) as name from category where id = ?', ($ids));

但它总是返回第一个值(即a

我需要结果值是这样的:a,b

我如何使用普通查询或 Laravel 来做到这一点?

谢谢你。

php laravel-5.1
5个回答
3
投票

您想要的是一种可以通过使用

GROUP_CONCAT
来实现的串联,例如:

SELECT GROUP_CONCAT(name) FROM category where id IN(1,2)

参考

说明:此处

GROUP_CONCAT(name)
将名称连接为name1,name2 ...对于
WHERE
条件匹配


1
投票

使用简单的连接来尝试这个。您可以连接尽可能多的以逗号分隔的列。

查询 -

select concat(id,",",name) as name from category where id = ?


1
投票

试试这个

$data = \DB::table("articles")
   ->select("title")
   ->whereRaw("find_in_set('find value',colum_name)")
   ->get();

0
投票

POST 或 GET 数据字段

user_id = 1,2,3;

$user_array = explode(',',Input::get('user_id')); OR $user_array = explode(',',Input::POST('user_id'));
$all_user =   User::WhereIn('user_id',$user_array)->get();

获取用户 ID 为 1,2 和 3 的所有用户。


0
投票

您可以使用 Elequent ORM

Category::pluck('id')->join(',');
© www.soinside.com 2019 - 2024. All rights reserved.