2013-08-04 2 views
0

mysql을 사용하여 가능합니다 :새 열을 삽입하고 모든 행을 늘립니다.

"pos"를 삽입하십시오. 테이블의 모든 행은 1,2,3,4,5와 같이 고유 한 값 "pos"를 가져야합니다. -이 의지 지수는, 그것을 만들

$query = "SELECT * FROM example"; 

$result = mysql_query($query) or die(mysql_error()); 

$counter = 0; 
while($row = mysql_fetch_array($result)){ 
    mysql_query("UPDATE example SET pos = ".++$counter." WHERE id = ".$row['id']."); 
} 

답변

1

이미 제안 된 것처럼 가장 효율적인 솔루션은 pos에 자동 증분을 사용하는 것입니다. 귀하의 사용 사례를 허용하지 않는 경우

또한, 다음과 유사한 시도 :

"UPDATE example SET pos = ((select max(pos) from example) +1) WHERE id 
= ".$row['id']." 
1

예 당신이 당신의 pos MySQL의 필드 auto_increment 속성을 부여하는

UPDATE example SET pos = pos+1 WHERE id = ".$row['id']." 
+0

는 뜻이 : UPDATE 예를 들어 SET 포스 = pos의 + ID가 = ID 이 단지 내 모든 POS 행을 증가 1 1. 기본값은 0입니다. 따라서 모든 내 행의 위치 값은 1입니다. –

+1

$ row [ 'id']로 지정한 행만 업데이트됩니다. –

+0

정답이 아닙니다 - mysql을 사용할뿐만 아니라 PHP로 바로 가기. 노력 주셔서 감사합니다, 나는 –

0

처럼 작업을 수행 할 수 있습니다

PHP에서 이것은 쉬운 일이 될 것이다 고유하고 각 삽입에서 1 씩 증가

+0

mysql을 사용하여 같아요. 테이블에 이미 auto_incremented 열이 있습니다. 나는 그 테이블이 그 중 두 개를 가질 수 있다고 생각하지 않는다. –

관련 문제