这是我的类别表:
id | name
1 a
2 b
3 c
4 d
其中我需要以逗号分隔的方式获取1和2的值,即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 来做到这一点?
谢谢你。
您想要的是一种可以通过使用
GROUP_CONCAT
来实现的串联,例如:
SELECT GROUP_CONCAT(name) FROM category where id IN(1,2)
说明:此处
GROUP_CONCAT(name)
将名称连接为name1,name2 ...对于WHERE
条件匹配
使用简单的连接来尝试这个。您可以连接尽可能多的以逗号分隔的列。
查询 -
select concat(id,",",name) as name from category where id = ?
$data = \DB::table("articles")
->select("title")
->whereRaw("find_in_set('find value',colum_name)")
->get();
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 的所有用户。
您可以使用 Elequent ORM
Category::pluck('id')->join(',');