当前位置: 首页 > 知识库问答 >
问题:

如何处理带括号或编码的位置?[副本]

董砚
2023-03-14

我想用免费文本过滤,这意味着用户可以输入任何他们想要过滤的内容。所以,当用户键入侧输入我把下面。所以,我想按照这个逻辑过滤它们。


Free text = "abc def,ghi jkl"
...
AND
(
    (report.name like '%abc%'  AND report.name like '%def%')
    OR
    (bom_functions.name like '%abc%'  AND bom_functions.name like '%def%')
    OR
    (report.name like '%ghi%' AND report.name like '%jkl%')
    OR
    (bom_functions.name like '%ghi%' AND bom_functions.name like '%jkl%')
)

谁能帮帮我!

共有2个答案

宇文飞羽
2023-03-14

我没有真正理解你的问题,但我认为这可以帮助你。您可以在Laravel中使用或where

$freetext = "abc def,ghi jkl"
....
where(function ($query) use ($freetext) {
   $query->orWhere('report.name', 'LIKE', '%' . $freetext . '%')
         ->orWhere('bom_functions.name', 'LIKE', '%' . $freetext . '%')
}
慕容念
2023-03-14

尝试下面的代码,它应该可以工作

$model->where(function ($query) {

        return $query
            ->where(function ($a) {
                return $a
                    ->where('report.name', 'like', '%abc%')
                    ->where('report.name', 'like', '%def%');
            })
            ->orWhere(function ($b) {
                return $b
                    ->where('bom_functions.name', 'like', '%abc%')
                    ->where('bom_functions.name', 'like', '%def%');
            })
            ->orWhere(function ($c) {
                return $c
                    ->where('report.name', 'like', '%abc%')
                    ->where('report.name', 'like', '%def%');
            })
            ->orWhere(function ($d) {
                return $d
                    ->where('bom_functions.name', 'like', '%ghi%')
                    ->where('bom_functions.name', 'like', '%jkl%');
            });
    });

参考:逻辑分组

 类似资料:
  • 问题内容: 我还没有找到任何官方文档。但是afaik,是否在没有括号的情况下使用我们的类实例化没有关系-只要不涉及参数,对吗? 要么 但是谁能告诉我性能是否有所不同?“更正确”的方法是哪一种?有任何官方文件吗? 问题答案: 性能上的任何差异将绝对可以忽略。 虽然这两种方式都很好,我个人更喜欢使用 ,因为通常情况下,一个方法 是 正在这里所说的,和PHP函数/方法调用时需要。而且,它与带有参数的实例

  • 我有一个路径变量,在spring url中有方括号。但我也因为同样的原因而感到沮丧。我使用编码器组件在主干框架中对url进行编码。但即使url编码正确,我还是收到了错误的请求。

  • 我正在尝试使用Geocoder对象在谷歌地图中显示一个位置地址。为此,我创建了一个类FetchAddressIntentService扩展IntentService并重写onHandleIntent()方法,并使用显式intent启动该服务。但问题是,当我使用startService(intent)onHandleIntent()启动服务时,方法是not call。 我遵循的代码与android上

  • 我有一个带有GET服务的spring启动应用程序。 的值是一个编码值。 如果我把下面作为值传递给参数子 它无法捕获请求,并且控件不在函数内部。 如果我们作为值传递给参数子: 它很好用。 > 由于服务器无法处理该请求,所以返回400。我需要捕获这些请求,然后通过正确编码来处理它们。前进的道路是什么? 我是新来的Spring启动/Spring和Java本身。如果我能得到一些见解,那就太好了。 另外,我

  • 我有一个特定的正则表达式,它可以在文本数据中找到一些值,例如任何10个字母,例如。问题是这个值应该只在尖括号、引号或空格内,并且应该提取该值作为结果。例如在这种情况下:

  • 如果月份是大写或小写,即不是标题大小写,DateTimeForware无法解析日期。有没有简单的方法将日期转换为标题大小写,或者有没有方法使格式化程序更宽松? 指纹