【问题标题】: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})");
【解决方案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})))";