2012-05-22 2 views

답변

5
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})"; 
1

사용 내파하지만 당신은 당신의 프로그램에서 나중에 사용할 수 있습니다와 같은 배열 변수를 설정 해달라고는 또한 권장하거나 그런 변수의 데이터 형식을 변경하는 좋은 프로그래밍 연습으로 간주되지 않습니다. mytable 큰하지만 유지 할 항목의 수가 적은

$items= array(13, 19, 22, 3129); 
$sql = sprintf("delete from tbl where id_col not in (%s)",implode(",", $items)); 
1

경우, 여기에 빠른 방법

$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); 
에게 있습니다