>我有一个非常简单的数据库结构和查询。我想要的是获得一些带有 %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% 是一个术语
如果您无法通过流畅的接口生成所需的查询,请随意使用 whereRaw 和 REGEXP:
$kslr=DB::table('kisiler')
->select('*')
->whereRaw("dogumgunu REGEXP '^[0-9]-[0-9]'")
->get();
例;
$kslr=DB::table('kisiler')
->select('*')
->whereRaw("dogumgunu REGEXP '^29-12'")
->get();