php - Laravel - Eloquent 子查询选择独立于模型场景

标签 php mysql laravel laravel-4

我想在 laravel 的 eloquent orm 中使用子查询,那里有很多例子,但我的场景有些不同。 Laravel 的 eloquent orm 专注于模型(每个表都有一个模型)但是我的子查询是这样的

SELECT * FROM (Select * FROM Table Where id <> 12) t WHERE phone = '123456' Or email = 'example@example.com'

所以基本上我为什么要这样做?我想检查/获取 phone 为 123456 或 email 为 example@example.com 的所有行 EXCEPT id 为 的行>12。我应该使用什么方法?

最佳答案

您正在编写原始 SQL 查询,这与 Laravel 的 Eloquent ORM/查询生成器关系不大。

如果您想选择电话号码为 123456 或电子邮件为 example@example.com 的所有行,但 ID 为 12 的行除外,则以下语句将是 Eloquent 版本:

MyModel::where('phone', '12345')->orWhere('email', 'example@example.com')->whereNotIn( 'id', [12])->get();

旁注,whereNotIn 接受一个数组作为参数,因此您也可以这样写:

whereNotIn( 'id', [1, 2, 3])

关于php - Laravel - Eloquent 子查询选择独立于模型场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33228670/

相关文章:

mysql - 如何在mysql中选择可选列?

mysql - Entity Framework 添加方法不可用

php - Laravel Nova 自引用关系

php - Laravel 5 在选择查询中选择

php - 数据库 : best practice countries, 国家代码,国家电话代码

java - 解密java中在php中使用AES加密的字符串

PHPMyAdmin 数据库用 0 而不是字符串填充字段

mysql - 在 mysql 中的同一个表上包含空行比 LEFT JOIN 更有效的方法?

php - 通过 htaccess 缩小动态 PHP 页面

php - 在 MATCH AGAINST 中使用 CONCAT