mysql - laravel where 子句值和列名
问题描述
我如何在 laravel 查询 where 子句中执行这些操作?
select * from table_samples where 1 = id
// basically i can do like where id = 1
select * from table_samples where 1000 > rate
// basically i can do like where rate < 1000
select * from table_samples where 'bogart' = name
// basically i can do like where name = "bogart"
我的观点是,如果你在 mysql 上交换column
和value
它的工作,但如果我在 laravel where 子句中这样做它不起作用?
就像是
TableSample::where('1','id')->first();
TableSample::where('1000','>','rate')->first();
TableSample::where('bogart','name')->first();
// throws an error undefined column name 1, 100, and bogart.
// I know laravel . These are the correct query
TableSample::where('id','1')->first();
TableSample::where('rate','<','1000')->first();
TableSample::where('name','bogart')->first();
laravel 中是否有任何 where 子句函数可以接受或确定您是否尝试互换value
and column
?
解决方案
你燕用DB::raw()
这个。
TableSample::whereRaw('? = id', [1])->first();
只需确保使用上述参数替换来防止创建 sql 注入漏洞。
推荐阅读
- c++ - 在 C++ 中的标头中使用名称空间时未定义对链接器错误的引用
- php - 如何更新已经用while循环显示的信息?
- ios - Flutter App IOS Build 抛出错误 Command PhaseScriptExecution failed with a nonzero exit code
- google-apps-script - 嗨,我有这个错误“TypeError:无法读取属性'getRange' of null”的问题。我试图从谷歌表格中的表单中保存一些数据
- ios - 无法在 collectionView 中打印来自 api 的响应
- vb.net - 基于VB.Net和VB6如何获取打印机池的每一项详细信息(如状态、页面、打印页面、文档名称)?
- amazon-web-services - dynamodb中的batchsave不写记录
- reactjs - 为什么 i18next-browser-languagedetector 默认选择“en”?
- nginx - 我有一个从互联网到 nginx 反向代理服务器的请求,如何将它从 nginx 传递到另一台机器上的另一个反向代理服务器?
- r - 聚合r中的变量错误