Mysql 我想检查我的sql命令是否包含输入的数据

Mysql 我想检查我的sql命令是否包含输入的数据,mysql,laravel,laravel-5,Mysql,Laravel,Laravel 5,我有两轮“第一轮和淘汰赛”。只有4队在第一轮拿到最高分才能进入淘汰赛。现在首先,我想从第一轮中选择这4支队伍,然后检查输入的队伍是否在所选的4支队伍中。看看我的代码(到目前为止我已经试过了) [在本图中,标记的两个团队应被排除,但当我给出条件时,不排除这两个团队] 更新后的$kos屏幕截图。 首先,$ko不包含查询结果,直到您传递一个闭包,在本例中是->First() 接下来,您需要将$ko->team的值与$matches->team1或$matches->team2进行比较: if($ko

我有两轮“第一轮和淘汰赛”。只有4队在第一轮拿到最高分才能进入淘汰赛。现在首先,我想从第一轮中选择这4支队伍,然后检查输入的队伍是否在所选的4支队伍中。看看我的代码(到目前为止我已经试过了) [在本图中,标记的两个团队应被排除,但当我给出条件时,不排除这两个团队]

更新后的
$kos
屏幕截图。

首先,
$ko
不包含查询结果,直到您传递一个闭包,在本例中是
->First()

接下来,您需要将
$ko->team
的值与
$matches->team1
$matches->team2
进行比较:

if($ko->team == $matches->team1 || $ko->team == $matches->team2) {
  ...
}
最后,进行一些清理。DB查询可以简化为使用雄辩的语法,而不是原始的选择:

$ko = DB::table("points")
->where("round", "=", "first")
->orderBy("points", "DESC")
->orderBy("run_rate", "DESC")
// ->limit(4) // Removing this; incompatible with `->first()`
->first();
还有一个逻辑错误;如果需要
限制(4)
,则不能先使用
->()
,必须使用
->get()
,这将创建一个
集合
,除非循环:

$kos = DB::table("points")...->get();

$matches->round = "first";
foreach($kos AS $ko){
    if($ko->team == $matches->team1 || $ko->team == $matches->team2) {
        $matches->round = "ko";
        break;
    }
}
总之,您需要重新检查您正在尝试做什么,并阅读雄辩的语法,如何执行查询和返回结果,如何循环、访问属性和比较这些结果,等等


编辑:由于您正在循环和比较,请将
$matches->round
的默认值设置为“first”,然后在循环时,如果比较条件为
true
,则将
$matches->round
覆盖为“ko”并中断循环。

首先,
$ko
不包含查询结果,直到您传递一个闭包,在本例中是
->first()

接下来,您需要将
$ko->team
的值与
$matches->team1
$matches->team2
进行比较:

if($ko->team == $matches->team1 || $ko->team == $matches->team2) {
  ...
}
最后,进行一些清理。DB查询可以简化为使用雄辩的语法,而不是原始的选择:

$ko = DB::table("points")
->where("round", "=", "first")
->orderBy("points", "DESC")
->orderBy("run_rate", "DESC")
// ->limit(4) // Removing this; incompatible with `->first()`
->first();
还有一个逻辑错误;如果需要
限制(4)
,则不能先使用
->()
,必须使用
->get()
,这将创建一个
集合
,除非循环:

$kos = DB::table("points")...->get();

$matches->round = "first";
foreach($kos AS $ko){
    if($ko->team == $matches->team1 || $ko->team == $matches->team2) {
        $matches->round = "ko";
        break;
    }
}
总之,您需要重新检查您正在尝试做什么,并阅读雄辩的语法,如何执行查询和返回结果,如何循环、访问属性和比较这些结果,等等


编辑:由于您正在循环和比较,请将
$matches->round
的默认值设置为“first”,然后,在循环时,如果比较条件为
true
,则将
$matches->round
覆盖为“ko”并中断循环。

谢谢@Tim Lewis给您时间,但当我的输入为“$matches->team1=Barisal”时“$matches->team2=Rajshahi”然后$matches->round应该是“ko”,但它另存为“first”,你能运行
dd($ko)
并告诉我它包含什么吗?(请用该内容编辑原始问题)这是我在dd($ko)之后得到的结果是的,请参阅我的编辑。当您循环并分配时,最后分配的值是什么;您可能在一次迭代中将
$matches->round
分配给“ko”,然后将其覆盖为“first”“是的,我看到了。谢谢你,兄弟,它救了我的命……也谢谢你的时间谢谢你@Tim Lewis,谢谢你的时间,但是当我的输入是“$matches->team1=Barisal”和“$matches->team2=Rajshahi”时,$matches->round应该是“ko”,但它保存为“first”,你能运行一个
dd($ko)
并告诉我它包含什么吗?”?(请用该内容编辑原始问题)这是我在dd($kos)之后得到的是,请看我的编辑。当您循环并指定时,最后指定的值是粘住的值;您可能在一次迭代中将
$matches->round
分配给“ko”,然后在稍后的一次迭代中将其重写为“first”。是的,我看到了,谢谢兄弟,这救了我的命……也谢谢您的时间