2011-06-13 5 views
1
UPDATE userpostratings SET rating = $rating WHERE postID = 8 

postid = 8 인 userpostratings에 행이 없으면 대신 INSERT를 원합니다. 행이 없으면 업데이트 대신 삽입합니다.

메크

에게

감사

을이가 SQL 함께 할 수 또는 내가 PHP에서 그것을해야
+0

가능한 중복 : http://stackoverflow.com/questions/913841/mysql-conditional-insert의 –

+0

가능 중복 된 [I가 존재하는 경우, 갱신하지 않을 경우 삽입 (일명 upsert 또는 병합) 어떻게에서 MySQL?] (http://stackoverflow.com/questions/1218905/how-do-i-update-if-exists-insert-if-not-aka-upsert-or-merge-in-mysql) –

답변

2

는 다음과 같은 일을 할 수 있습니다 여기

INSERT INTO userpostratings (rating, postID) VALUES ($rating, 8) 
    ON DUPLICATE KEY UPDATE rating = $rating; 
+0

고유해야합니다. 인덱스는 mysql_affected_rows()가 아니다. – Grumpy

+0

사실, 고유 인덱스가 필요합니다. 그것이 내가 "당신이 유일한 색인을 가지고 있다면 ..."이라고 쓴 이유입니다. 이것이 당신의 복수 downvote라고 생각할 수 있습니까? –

-1

당신은 갈

http://nl2.php.net/manual/en/function.mysql-affected-rows.php

> mysql_query("UPDATE mytable SET used=1 
> WHERE id < 10"); printf ("Updated 
> records: %d\n", 
> mysql_affected_rows()); 
+0

이것은 OP가 묻는 것처럼 아무것도하지 않습니다. –

+0

아 .. 뭐라 구요? mysql_affected_rows() == 0이면 – Grumpy

+0

을 삽입하십시오. 설명하지 않았습니다. 또한,이 작업을 수행하려면 두 개의 명령문이 필요합니다. –

관련 문제