2016-07-09 5 views
0

데이터가있는 PHP 배열이 있습니다. 지금, 나는이 같은 사이클을 사용하고 있습니다 : 배열이 수천 행이 포함 된 경우MySQL에서 여러 행을 한 줄씩 업데이트하는 방법은 무엇입니까?

$updArray = array(1=>11,2=>12,3=>13); 
foreach($updArray as $id=>$value) 
{ 
    $query = "UPDATE table1 SET column1='$value' WHERE cart_id = '$id'"; 
    mysql_query($query,$link); 
} 

내 생각, 그것은 느린 것입니다. 주기가없고 모든 행을 업데이트하지 않고 MySQL 테이블을 업데이트 (배열에서 내 데이터 적용) 할 수 있습니까?

+3

의 사용 가능한 복제 [MYSQL - 하나 개의 쿼리에서 다른 값으로 UPDATE 여러 행 (http://stackoverflow.com/ questions/25674737/mysql-update-multiple-rows-with-different-values-in-one-query) – julienc

+0

예. 작은 데이터 세트의 경우 IN()을 사용할 수 있습니다. 더 큰 경우 업데이트 정보를 별도의 파일에 저장하고 업데이트 할 테이블에 결합 할 수 있습니다. – Strawberry

답변

0
당신은 너무처럼 CASE 문을 하나의 업데이 트를 구축 시도 할 수 있습니다

:

UPDATE table1 
    SET column1 = CASE 
     WHEN cart_id = 1 THEN 11 
     WHEN cart_id = 2 THEN 12 
     ... 
     ELSE cart_id = cart_id 
    END 
+0

아니요. 수천 개의 행이 있습니다. 수 많은 행을 쓸 때가 많지 않습니다. – Piter

+0

@Piter 당신은 쓰지 않습니다. 스크립트는 루프를 사용하여 문자열 및 배열을 사용하여 요청을 작성합니다. –

관련 문제