检查数据库表的记录是否与数据匹配

时间:2019-09-30 02:52:52

标签: php laravel

我很难解决这个问题。尝试检查数据库记录并将其与新数据进行比较。并记录在DB中。如果有任何数据与新数据不匹配。然后delete()来自数据库的旧数据。我尝试了几种方法来实现这一目标:

我尝试过whereRaw

 $check = Plan::whereRaw("plan_name", "!=", $val->textContent)->first();
 $check->delete();

正在查找不匹配的数据,但弹出错误。

  

SQLSTATE [42000]:语法错误或访问冲突:1064您有一个   您的SQL语法错误;检查与您的手册相对应的手册   MySQL服务器版本使用正确的语法,以在'plan_name限制附近使用   1'在第1行

我也尝试过where

 $check = Plan::where('plan_name', '=', $val->textContent)->first();
 if($check){
    // do nothing;
 } else {
      $check->delete();
 }

where没有做任何事情。没有错误,但是如果数据不匹配,它也不会删除。

两种方法都不适合我。

1 个答案:

答案 0 :(得分:0)

您只想删除不符合某些条件的数据。

这很简单,您不必获取数据。您可以简单地先执行where()然后delete()

示例代码

Plan::where('plan_name', '!=', $val->textContent)->delete();