【问题标题】:Delete when UserID = 1 and CourseID not in array?当 UserID = 1 且 CourseID 不在数组中时删除?
【发布时间】:2013-07-16 09:28:50
【问题描述】:

这是我正在使用的 SQL 代码:

由于某种原因,它会删除 UserID 的所有记录,但不考虑 NOT IN 数组。只有当用户 ID = 当前用户且该用户的 courseID 不在数组中时,我才需要删除它。

mysql_query("DELETE FROM tblLinkUserCourse WHERE ((UserID=$CurrentUserID) AND (CourseID NOT IN ({$new_array})))");

【问题讨论】:

    标签: php mysql arrays sql-delete notin


    【解决方案1】:

    1) 从查询中删除所有不必要的()

    2) 检查$new_array 是否包含您所有的 course_id 并构造为字符串。如果不构造为字符串和逗号分隔使用此代码。

    $new_array = implode(',', $new_array);
    mysql_query("DELETE FROM tblLinkUserCourse WHERE UserID=$CurrentUserID AND CourseID NOT IN ({$new_array})");
    

    【讨论】:

    • @user2561158 欢迎。
    【解决方案2】:

    $new_array PHP 数组或字符串是否准备好进行查询? 如果是数组,你应该使用:

    $new_array = implod(',', $new_array);
    mysql_query("DELETE FROM tblLinkUserCourse WHERE ((UserID=$CurrentUserID) AND (CourseID NOT IN ({$new_array})))");
    

    【讨论】:

      【解决方案3】:

      试试:

      $new_array  = "'".implode("', ", $new_array)."'";
      $sql        = "DELETE FROM tblLinkUserCourse WHERE ((UserID=$CurrentUserID) AND (CourseID NOT IN ({$new_array})))";
      

      【讨论】:

        猜你喜欢
        • 2020-08-22
        • 2019-07-12
        • 2022-11-17
        • 1970-01-01
        • 1970-01-01
        • 2020-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多