在 laravel eloquent 中使用反向 LIKE
Use inverse LIKE in laravel eloquent
大家好,这是我的第一个问题 基本上我想在 LARAVEL Eloquent SELECT * FROM `precio_canales` WHERE JHON SMITH PORKI' LIKE CONCAT('%',precio_canales.nombre_cliente,'%')
中实现这个 select 例如,如果我收到“JHON SMITH PORKI”作为输入,我希望数据库 return 查询所有名称为“JHON SMITH”的查询
我试过:
$precio_canal = DB::table('precio_canales')->where('Jhon Smith porki', 'LIKE', DB::raw(`CONCAT("%",precio_canales.nombre_cliente,"%"`))->get();
还有:
$precio_canal = PrecioCanales::where('Jhon smith Porki ' , 'LIKE' , DB::raw('concat("%",nombre_cliente,"%")'))->get();
两个查询 return 500 内部服务器错误 任何帮助将不胜感激!提前致谢
在where
方法中,第一个参数是列名,第二个是比较运算符(可选),thir 是比较值。
所以您的查询应该是:
$precio_canal = DB::table('precio_canales')
->where(DB::raw(`precio_canales.nombre_cliente`), 'LIKE', '%Jhon Smith porki%')
->get();
where
需要一个列。您需要在查询中传递原始表达式。
试试看
$precio_canal = DB::table('precio_canales')
->whereRaw('"Jhon Smith porki" LIKE CONCAT("%", precio_canales.nombre_cliente, "%")')
->get();
或
$precio_canal = DB::table('precio_canales')
->whereRaw('"Jhon Smith porki" LIKE "%" || precio_canales.nombre_cliente || "%"')
->get();
您还应该转义用户的输入。您可以通过将其替换为 ?
然后将数组中的值作为第二个参数传递来实现
$precio_canal = DB::table('precio_canales')
->whereRaw('"?" LIKE CONCAT("%", precio_canales.nombre_cliente, "%")', ['Jhon Smith porki'])
->get();
或
$precio_canal = DB::table('precio_canales')
->whereRaw('"?" LIKE "%" || precio_canales.nombre_cliente || "%"', ['Jhon Smith porki'])
->get();
大家好,这是我的第一个问题 基本上我想在 LARAVEL Eloquent SELECT * FROM `precio_canales` WHERE JHON SMITH PORKI' LIKE CONCAT('%',precio_canales.nombre_cliente,'%')
中实现这个 select 例如,如果我收到“JHON SMITH PORKI”作为输入,我希望数据库 return 查询所有名称为“JHON SMITH”的查询
我试过:
$precio_canal = DB::table('precio_canales')->where('Jhon Smith porki', 'LIKE', DB::raw(`CONCAT("%",precio_canales.nombre_cliente,"%"`))->get();
还有:
$precio_canal = PrecioCanales::where('Jhon smith Porki ' , 'LIKE' , DB::raw('concat("%",nombre_cliente,"%")'))->get();
两个查询 return 500 内部服务器错误 任何帮助将不胜感激!提前致谢
在where
方法中,第一个参数是列名,第二个是比较运算符(可选),thir 是比较值。
所以您的查询应该是:
$precio_canal = DB::table('precio_canales')
->where(DB::raw(`precio_canales.nombre_cliente`), 'LIKE', '%Jhon Smith porki%')
->get();
where
需要一个列。您需要在查询中传递原始表达式。
试试看
$precio_canal = DB::table('precio_canales')
->whereRaw('"Jhon Smith porki" LIKE CONCAT("%", precio_canales.nombre_cliente, "%")')
->get();
或
$precio_canal = DB::table('precio_canales')
->whereRaw('"Jhon Smith porki" LIKE "%" || precio_canales.nombre_cliente || "%"')
->get();
您还应该转义用户的输入。您可以通过将其替换为 ?
然后将数组中的值作为第二个参数传递来实现
$precio_canal = DB::table('precio_canales')
->whereRaw('"?" LIKE CONCAT("%", precio_canales.nombre_cliente, "%")', ['Jhon Smith porki'])
->get();
或
$precio_canal = DB::table('precio_canales')
->whereRaw('"?" LIKE "%" || precio_canales.nombre_cliente || "%"', ['Jhon Smith porki'])
->get();