带有多个嵌套OR查询的'in'子句的Laravel 5.1查询构建器

克里斯汀·梅

我正在尝试将此sql转换为php laravel 5.1查询。

SELECT `videoId`, `videoTitle`FROM `tempdetails` WHERE `videoTitle` LIKE '%Ramsays Kitchen Nightmares%' 
or videoTitle in
(
videoTitle in 
(`videoTitle` LIKE '%season 1%' or `videoTitle` LIKE '%e01%' or `videoTitle` LIKE '%01x%')
or
videoTitle in
(`videoTitle` LIKE '%episode 1%' or `videoTitle` LIKE '%s01%' or `videoTitle` LIKE '%x01%') 
)

这是我尝试过的代码。

  $vd = DB::table('tempdetails');
               $vd ->where('videoTitle', 'like', '%'.$titl.'%')
               ->whereIn('videoTitle',function($query) {
                 $query->orwhere( 'videoTitle', 'like', '%season 1%')
                 ->orWhere( 'videoTitle', 'like', '%s01%')
                 ->orWhere( 'videoTitle', 'like', '%01x%');
               });
               $vd->whereIn('videoTitle',function($query) {
                 $query->orWhere( 'videoTitle', 'like', '%episode 1%')
                 ->orWhere( 'videoTitle', 'like', '%e01%')
               ->orWhere( 'videoTitle', 'like', '%x01%');
             });
            $vd->get();

但这给我一个错误:

SQLSTATE [HY000]:常规错误:使用(SQL 1096个表格:从SELECT *tempdetails那里videoTitle就像%拉姆齐的厨房噩梦%和videoTitleIN(SELECT *,其中videoTitle如%季1%或videoTitle类似%S01%或videoTitle类似%01X%)和videoTitle中(选择*,其中videoTitle%episode 1%或videoTitle%e01%或videoTitle%x01%))

任何人都有一个想法如何实现这一目标?

威士达

您可以使用whereRawDB::select()当我有无法直观翻译的复杂语句时,除非我真的很需要口才,否则我倾向于运行原始语句。

另外,我不确定您的数据是什么样子以及您想要达到什么目的,但是可能会有一种方法来重写查询,以便更好地应对雄辩的约束。

例子 whereRaw()

$wherelikes = "videoTitle in
(
videoTitle in 
(`videoTitle` LIKE '%season 1%' or `videoTitle` LIKE '%e01%' or `videoTitle` LIKE '%01x%')
or
videoTitle in
(`videoTitle` LIKE '%episode 1%' or `videoTitle` LIKE '%s01%' or `videoTitle` LIKE '%x01%') 
)"
$vd = DB::table('tempdetails')
          ->whereRaw("`videoTitle` LIKE '%Ramsays Kitchen Nightmares%'")
          ->orWhere(function($query) use ($whereLikes) {
            $query->whereRaw($whereLikes)
           })->get();

例子 DB::select()

$statement = "SELECT `videoId`, `videoTitle`FROM `tempdetails` WHERE `videoTitle` LIKE '%Ramsays Kitchen Nightmares%' 
or videoTitle in
(
videoTitle in 
(`videoTitle` LIKE '%season 1%' or `videoTitle` LIKE '%e01%' or `videoTitle` LIKE '%01x%')
or
videoTitle in
(`videoTitle` LIKE '%episode 1%' or `videoTitle` LIKE '%s01%' or `videoTitle` LIKE '%x01%') 
)"
$vd = DB::select(DB::raw($statement));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ElasticSearch - 带有多个子句的过滤查询 ES 5

来自分类Dev

Laravel 5查询构建器限制

来自分类Dev

Laravel 5 查询构建器逻辑非

来自分类Dev

在Laravel查询构建器中使用多个where子句

来自分类Dev

laravel5 Eloquent 和查询构建器

来自分类Dev

带有嵌套 whereDate 的 Laravel 雄辩查询

来自分类Dev

如何构建 Eloquent 查询来检索主表的记录,在 Laravel 5 PHP 中对其相关表应用 where 子句?

来自分类Dev

Laravel 5 Eloquent中的高级嵌套AND子句

来自分类Dev

如何在Laravel查询构建器中添加和排除where()子句

来自分类Dev

Laravel查询构建器分组

来自分类Dev

Laravel 空间查询构建器

来自分类Dev

您可以在laravel的运行时使用查询生成器来构建带有动态WHERE子句的查询吗?

来自分类Dev

Laravel查询构建器与多个子查询联接

来自分类Dev

如何在Laravel 5和查询生成器中编写“ OR WHERE YEAR(...)”子句?

来自分类Dev

Laravel - 如何将 where 子句添加到 Eloquent Top 5 查询

来自分类Dev

如何在控制器中使用join和whereNotIn在Laravel 5中构建SQL查询?

来自分类Dev

Laravel 5-获取按列分组的查询构建器结果

来自分类Dev

laravel 5-使用雄辩或查询构建器连接表时,选择所有不带星号的列

来自分类Dev

在Laravel查询中使用with子句后无法使用where子句

来自分类Dev

查询有多个子句

来自分类Dev

Laravel 嵌套 where 子句(查询生成器)

来自分类Dev

如何使用laravel查询构建器嵌套WHERE加AND条件?

来自分类Dev

如何在带有IN子句和子查询的查询中使用多个LIKE语句?

来自分类Dev

在使用'with'子句的查询中使用Laravel的toSql

来自分类Dev

Laravel 4查询中的where子句

来自分类Dev

Laravel与where子句的多对多查询关系

来自分类Dev

Laravel查询:每个选择的不同where子句

来自分类Dev

Laravel 4查询中的where子句

来自分类Dev

Laravel与where子句的多对多查询关系

Related 相关文章

  1. 1

    ElasticSearch - 带有多个子句的过滤查询 ES 5

  2. 2

    Laravel 5查询构建器限制

  3. 3

    Laravel 5 查询构建器逻辑非

  4. 4

    在Laravel查询构建器中使用多个where子句

  5. 5

    laravel5 Eloquent 和查询构建器

  6. 6

    带有嵌套 whereDate 的 Laravel 雄辩查询

  7. 7

    如何构建 Eloquent 查询来检索主表的记录,在 Laravel 5 PHP 中对其相关表应用 where 子句?

  8. 8

    Laravel 5 Eloquent中的高级嵌套AND子句

  9. 9

    如何在Laravel查询构建器中添加和排除where()子句

  10. 10

    Laravel查询构建器分组

  11. 11

    Laravel 空间查询构建器

  12. 12

    您可以在laravel的运行时使用查询生成器来构建带有动态WHERE子句的查询吗?

  13. 13

    Laravel查询构建器与多个子查询联接

  14. 14

    如何在Laravel 5和查询生成器中编写“ OR WHERE YEAR(...)”子句?

  15. 15

    Laravel - 如何将 where 子句添加到 Eloquent Top 5 查询

  16. 16

    如何在控制器中使用join和whereNotIn在Laravel 5中构建SQL查询?

  17. 17

    Laravel 5-获取按列分组的查询构建器结果

  18. 18

    laravel 5-使用雄辩或查询构建器连接表时,选择所有不带星号的列

  19. 19

    在Laravel查询中使用with子句后无法使用where子句

  20. 20

    查询有多个子句

  21. 21

    Laravel 嵌套 where 子句(查询生成器)

  22. 22

    如何使用laravel查询构建器嵌套WHERE加AND条件?

  23. 23

    如何在带有IN子句和子查询的查询中使用多个LIKE语句?

  24. 24

    在使用'with'子句的查询中使用Laravel的toSql

  25. 25

    Laravel 4查询中的where子句

  26. 26

    Laravel与where子句的多对多查询关系

  27. 27

    Laravel查询:每个选择的不同where子句

  28. 28

    Laravel 4查询中的where子句

  29. 29

    Laravel与where子句的多对多查询关系

热门标签

归档