을 행 보관할 때는 $items= array(13, 19, 22, 3129);
그래서 난이 삭제하지만 MySQL은/배열 PHP에서 ID로
어떻게 단순히 내 DELETE 쿼리 SQL에서이 아이디의로 행을 포함 할 수 없습니다?
을 행 보관할 때는 $items= array(13, 19, 22, 3129);
그래서 난이 삭제하지만 MySQL은/배열 PHP에서 ID로
어떻게 단순히 내 DELETE 쿼리 SQL에서이 아이디의로 행을 포함 할 수 없습니다?
DELETE FROM table1
WHERE id NOT IN (13, 19, 22, 3129)
PHP에서는 implode() 함수를 사용하여 IN 절을 작성할 수 있습니다.
$items = implode(",", $items);
$sql = "DELETE FROM table1 WHERE id NOT IN ({$items})";
사용 내파하지만 당신은 당신의 프로그램에서 나중에 사용할 수 있습니다와 같은 배열 변수를 설정 해달라고는 또한 권장하거나 그런 변수의 데이터 형식을 변경하는 좋은 프로그래밍 연습으로 간주되지 않습니다. mytable
큰하지만 유지 할 항목의 수가 적은
$items= array(13, 19, 22, 3129);
$sql = sprintf("delete from tbl where id_col not in (%s)",implode(",", $items));
경우, 여기에 빠른 방법
$items= array(13, 19, 22, 3129);
$sql = "CREATE TABLE mynewtable LIKE mytable";
mysql_query($sql);
$id_list = sprintf("(%s)",implode(",", $items));
$sql = "INSERT INTO mynewtable SELECT * FROM mytable WHERE id_col IN " . $id_list;
mysql_query($sql);
$sql = "DROP TABLE mytable";
mysql_query($sql);
$sql = "ALTER TABLE mynewtable RENAME mytable";
mysql_query($sql);
에게 있습니다