【问题标题】:laravel eloquent like does not worklaravel 雄辩之类的不起作用
【发布时间】:2015-02-25 11:58:57
【问题描述】:

我有一个非常简单的数据库结构和查询。 我想要的是获得一些带有 %like% 的行,但它什么也没得到。 这是我的查询:

$kslr=DB::table('kisiler')->select('*')->where('dogumgunu','%LIKE%',"29-12")->get();

当我写 var_dump($kslr) 时,它给了我一个空数组。

我在 kisiler 表中有三个人,其“dogumgunu”列是:“29-12-1987”、“29-12-1986” 和“1991 年 12 月 24 日。

所以查询应该返回其中的 2 个,但它什么也没得到, 顺便说一下,我表中的“dogumgunu”列是一个“文本”结构,设置为 utf-8。

感谢您的宝贵时间。

【问题讨论】:

    标签: php arrays database laravel eloquent


    【解决方案1】:

    不要在运算符中放通配符,把它们放在搜索词中!

    $kslr = DB::table('kisiler')
           ->select('*')
           ->where('dogumgunu','LIKE',"%29-12%")
           ->get();
    

    【讨论】:

      【解决方案2】:
      where('dogumgunu','%LIKE%',"29-12")
      

      应该是

      where('dogumgunu','LIKE',"%29-12%")
      

      LIKE 是一个运算符

      %29-12% 是一个术语

      【讨论】:

        【解决方案3】:

        如果您无法通过流畅的界面生成所需的查询,请随意使用 whereRawREGEXP

        $kslr=DB::table('kisiler')
          ->select('*')
          ->whereRaw("dogumgunu REGEXP '^[0-9]-[0-9]'")
          ->get();
        

        示例;

        $kslr=DB::table('kisiler')
          ->select('*')
          ->whereRaw("dogumgunu REGEXP '^29-12'")
          ->get();
        

        【讨论】:

        • 是的,我住在土耳其。
        猜你喜欢
        • 1970-01-01
        • 2023-04-07
        • 2015-06-25
        • 2019-08-13
        • 1970-01-01
        • 2020-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多