Laravel 在拉雷维尔的雄辩中,情况相似
我是新来的能言善辩的拉雷维尔 现在我在下面使用mysql查询来转换数据Laravel 在拉雷维尔的雄辩中,情况相似,laravel,eloquent,Laravel,Eloquent,我是新来的能言善辩的拉雷维尔 现在我在下面使用mysql查询来转换数据 select * from `dsa_data_realisasi_resolver` where (CASE WHEN akun LIKE '%51%' THEN 51 ELSE 0 END ) and year(`tanggal`) = 2020 and `kdsatker` = 412772 group by `akun` 当我试着用雄辩来表达这样的话 $realisasi=Realisasi::whereRaw(
select * from `dsa_data_realisasi_resolver` where (CASE WHEN akun LIKE '%51%' THEN 51 ELSE 0 END ) and year(`tanggal`) = 2020 and `kdsatker` = 412772 group by `akun`
当我试着用雄辩来表达这样的话
$realisasi=Realisasi::whereRaw('(CASE WHEN akun LIKE '%51%' THEN 51 ELSE 0 END )')
->whereYear('tanggal','2020')
->where('kdsatker','412772')
->groupby('akun')
->get();
dd($realisasi);
有错误
ErrorException
A non-numeric value encountered
当我尝试删除单引号'
$realisasi=Realisasi::whereRaw('(CASE WHEN akun LIKE %51% THEN 51 ELSE 0 END )')
->whereYear('tanggal','2020')
->where('kdsatker','412772')
->groupby('akun')
->get();
dd($realisasi);
错误是
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%51% THEN 51 ELSE 0 END ) and year(`tanggal`) = ? and `kdsatker` = ? group by `a' at line 1 (SQL: select * from `dsa_data_realisasi_resolver` where (CASE WHEN akun LIKE %51% THEN 51 ELSE 0 END ) and year(`tanggal`) = 2020 and `kdsatker` = 412772 group by `akun`)
对于类似“%data%”的大小写查询,是否有雄辩的解决方案
谢谢尝试使用(当akun喜欢“%51%”时为CASE,然后是51 ELSE 0 END)
注意双引号包含whereRaw
语句
若要发送动态数据,您可以尝试“(当akun喜欢“%”数据“%”时的情况,“%”然后51 ELSE 0结束)
因此,您的查询应该如下所示:
$realisasi=Realisasi::whereRaw("(CASE WHEN akun LIKE '%".$data."%' THEN 51 ELSE 0 END )')
->whereYear('tanggal','2020')
->where('kdsatker','412772')
->groupby('akun')
->get();
MySQL要求like模式位于单引号内。有关更多参考信息:请尝试使用
(当akun喜欢“%51%”时,使用CASE,然后使用51 ELSE 0 END)
->双引号包含where raw语句。若要发送动态,您可以尝试”(“当akun喜欢“%”数据“%”时,“%”然后51 ELSE 0结束)”
非常感谢,很高兴我能提供帮助。作为答复张贴。