【问题标题】:How to use NOT FIND_IN_SET in Laravel 5.1?如何在 Laravel 5.1 中使用 NOT FIND_IN_SET?
【发布时间】:2015-12-12 20:12:34
【问题描述】:

当我们使用 FIND_IN_SET 在 Laravel 中搜索逗号分隔值时,例如:

->whereRaw('FIND_IN_SET(2,sent_mail_ids)')

但现在我想得到那些不存在于逗号分隔值中的结果。为此,我们在 MySQL 中使用 NOT FIND_IN_SET,但是在 Laravel 中如何使用呢?

【问题讨论】:

  • ->whereRaw('NOT FIND_IN_SET(2,sent_mail_ids)')

标签: php laravel laravel-5 eloquent laravel-5.1


【解决方案1】:

whereRaw() 允许您向查询中添加任意 SQL 代码 - 为了反转约束,只需使用您在原始 SQL 中使用的相同查询:

->whereRaw('NOT FIND_IN_SET(2,sent_mail_ids)')

或此约束的另一种变体:

->whereRaw('FIND_IN_SET(2,sent_mail_ids) = 0')

【讨论】:

  • @Insomania 不以这样的方式存储您的数据,因此您不需要在集合中查找是最正确的。但是对于上面的 2 个版本,这并不重要。
  • @Mihai,对不起,我没有找到你
  • @Insomania 选择你想要的,我认为第一个更具可读性
  • 我会选择第一种形式,因为它明确地告诉你检查的作用——你不需要关心或知道 FIND_IN_SET 的返回值是什么
猜你喜欢
  • 2015-10-13
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 2019-05-20
  • 1970-01-01
  • 2015-12-25
  • 2015-11-15
  • 1970-01-01
相关资源
最近更新 更多