2013-11-25 4 views
0

다음과 같은 SQL 쿼리가 있습니다 (WordPress 옵션). 무엇MySQL이 중복 됨 - 삽입하지만 업데이트되지 않음

INSERT INTO wp_options (option_name, option_value, autoload) VALUES 
(
    'category_children', 
    'a value', 
    'yes' 
), 
(
    'test_options', 
    'testing', 
    'yes' 
) 
ON DUPLICATE KEY UPDATE 
    option_name=option_name, 
    option_value=option_value, 
    autoload=autoload 
; 

그것은 값을 올바르게 삽입하지하지만 난 다른 값으로 다시 실행하면 나는 새로운 사람에게 값을 업데이트 할 전망이다. 이

그것은 값을 내가 쿼리를 실행 두 번째 시간을 업데이트하지 않습니다하지 않는 무엇

. 나는 값을 바꾼다. 나는 SQL에 오류가 없다. 0 행 영향을받습니다. 무엇 나는 "값"을 "다른 값을"변경 category_children이 이미 존재하는 경우 값을 교체해야 쿼리를 실행하면

에해야

.

질문 나는 내가 잘못 무엇

? mysql 5.5.24를 사용한다.

+0

어쩌면 http://stackoverflow.com/questions/2714587/mysql-on-duplicate-key-update-for-multiple-의 중복 : 당신은 삽입의 값을 업데이트 할 VALUES 구문을 사용할 수 있습니다 행 삽입 단일 쿼리 –

답변

3

option_name에서 option_name으로 업데이트하는 것은 아무런 효과가 없습니다.

INSERT INTO wp_options (option_name, option_value, autoload) VALUES 
(
    'category_children', 
    'a value', 
    'yes' 
), 
(
    'test_options', 
    'testing', 
    'yes' 
) 
ON DUPLICATE KEY UPDATE 
    option_name=VALUES(option_name), 
    option_value=VALUES(option_value), 
    autoload=VALUES(autoload) 
;