数据表字段不存在 php,laravel 使用原生表达式增加原数据表不存在的字段

比如我现在需要将两个表合在一起,这就需要一个两个表各增加一个标志字段来区分合成后的数据来自哪个表,比如两个表各加一个"1 as type" 和 "2 as type"这样就可以根据type来区分某条记录是来自哪个表了,但是直接用select方法这么写:Foo::select(['1 as type'])...

会报错:SQLSTATE[42S22]: Column not found: 1054 Unknown column '1' in 'field list':select `1` as `type` from

细心的你会发现1的周围多了个``符号,该符号是laravel自动加到字段上的,然后sql就会认为1应该是表user的一个字段,否则就会报错,怎么去掉``呢,用原生的就可以了

原生表达式

有时候你可能需要在查询中使用原生表达式,使用 DB::raw 方法可以创建原生表达式:$users = DB::table('users')

->select(DB::raw('count(*) as user_count, status'))

->where('status', '<>', 1)

->groupBy('status')

->get();{note} 原生表达式将会被当作字符串注入到查询中,所以要小心避免创建 SQL 注入漏洞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值