拉拉维尔雄辩喜欢不起作用



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

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

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

我在kisiler表中有三个人,其"dogumgunu"列是:"29-12-1987","29-12-1986"和"24-12-1991。

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

谢谢你的时间。

不要在运算符中放置通配符,将它们放在搜索的术语中!

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

应该是

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

LIKE 是一个运算符

%29-12% 是一个术语

如果您无法通过流畅的接口生成所需的查询,请随意使用 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();

最新更新