2013-11-04 2 views
1

이 문서에 따르면 (http://blogs.msdn.com/b/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx) 나는 같은 것을 할 싶습니다 나는 또한 시도IF ROW_COUNT() 반환 오류

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF ROW_COUNT() = 0 INSERT INTO chunks (scopeX, scopeY, targets)

을 조건 다음에 "THEN"이 있지만 작동하지 않습니다. 흥미로운 점은 내가 XAMPP의 최신 버전으로 작업하고 있다고 생각합니다. XAMPP을 올바르게 찾았을 때 MySQL 5.0을 사용하고 있습니다. 당신은 주위에 기능이없는 if 같은 제어문을 사용할 수 없습니다

+0

PHP를 통해 실행 중이십니까? 그렇다면'mysql_query'를 사용하고 있습니까? – andrewsi

답변

1

확인 phpValue *에 대한

는) = 어떤 도움 주셔서 대단히 감사합니다 제대로 PHP에 의해 삽입됩니다. 이를 함수, 프로 시저, 트리거 또는 이벤트에 넣어야합니다.

0

MS SQL에 관한 Microsoft 기사를 참조하고 있지만 MySQL을 사용 중입니다. 유사점에도 불구하고 서로 다른 방식으로 작동하는 서로 다른 언어입니다.

그런 종류의 IF 문은 MySQL에서는 작동하지 않지만 MS SQL에서는 잘 작동합니다. PHP에서

0

:

$query = mysql_query ("select * from ..........."); 
$count = mysql_affected_rows(); 
0

MySQL의에서, 당신은 저장 프로 시저에서이 작업을 수행해야합니다. FOUND_ROWS() 및 IF의 기본 구조는 다음과 같습니다.

DELIMITER $$ 

CREATE PROCEDURE `testproc`()  
BEGIN 

SET @INS = "SELECT * FROM yourschema.yourtable;"; 
PREPARE STMT FROM @INS; 
EXECUTE STMT; 
DEALLOCATE PREPARE STMT; 

SET @i = FOUND_ROWS(); 

IF(@i > 0) THEN SELECT 1; 
END IF; 

END $$ 

DELIMITER ;