2013-07-23 5 views
-1

작업중인 빠른 스크립트에 약간의 도움이 필요합니다. 3 열 {name, page1, page2} 있습니다. 거기에 중복 행이없는 경우에만 새 행을 삽입하고 싶습니다. id 및 page1 만 중복으로 확인하고 싶습니다. 예 들어MySQL에 삽입 할 쿼리가 존재하지 않습니다.

행 1 : 1, 3, 5

행 2 : 1, 2, 5

행 3 : 2, 2, 5

아니지만

행 4 : 1, 3, 10

죄송합니다. 이것이 조금 혼란 스럽다면.

미리 감사드립니다.

EDIT : 동일한 ID가 이미 존재하는 경우에도 page2를 +1로 업데이트하려고합니다.

+0

'id'는 기본 키입니까? 그렇다면 중복 된 'id'를 삽입 할 수 없습니다. * 고유성 *에 더 많은 열을 포함해야하는 경우 고유 제한 조건을 사용하십시오. – Phil

+0

id는 기본 키가 아닙니다. 솔직히 말해서, 이름을 뭔가 다른 이름으로 바꾸어야합니다. 그러나 아니요, 동일한'name' /'id'를 가진 여러 행이있을 수 있습니다 – user1834218

답변

2

이 코드를 시도하십시오 고마워요.

$id =$_POST['id']; 
$page_1 =$_POST['page1']; 
$page_2 = $_POST['page2']; 

$query = 'mysql_query(select * from table_name where id='.$id.' and page1 = '.$page.''); 
$result = mysql_num_rows($query); 

if($result == 0){ 
    // enter your insert query 
} 
else{ 
echo 'row is already exit'; 
} 
+0

완벽하게 작동합니다. 왜 내가 그것을 생각하지 않았는지 모르겠다. – user1834218

0
INSERT INTO `table_name`(`page1`) 
SELECT page1 
FROM (SELECT page1 AS page) x 
WHERE NOT EXISTS(SELECT page1 FROM `table_name` WHERE `page1` = $value) 

+0

명확히하지 못해 죄송합니다. ID가 이미 존재한다면,'page2 = page2 + 1' – user1834218

+1

@ user1834218, 실제로 그것을 해결하려고 했습니까? 귀하의 의견은 마치 SO 솔루션을 무료 솔루션으로 간주하는 것처럼 보입니다. – Devolus

+0

그런 다음 ID 필드를 자동 증가로 설정하여 ID 필드 중복을 피하십시오. –

관련 문제