반응형
단일 쿼리에 여러 행을 삽입하려는 SQL 쿼리가 있습니다. 그래서 다음과 같이 사용했습니다.
$sql = "INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)";
mysql_query( $sql, $conn );
문제는이 쿼리를 실행할 때 UNIQUE 키 ( PRIMARY KEY 가 아님)가 아닌지 확인하고 싶습니다. 위의 'name'을 확인해야하며 이러한 'name'이 이미 존재하는 경우 해당하는 전체 행을 업데이트해야합니다. 그렇지 않으면 삽입해야합니다.
예를 들어, 아래 예에서 'Katrina'가 이미 데이터베이스에있는 경우 필드 수에 관계없이 전체 행을 업데이트해야합니다. 다시 'Samia'가 없으면 행을 삽입해야합니다.
나는 사용을 생각했다 :
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29) ON DUPLICATE KEY UPDATE
여기에 함정이 있습니다. 진행 방법에 대해 막히고 혼란 스러웠습니다. 한 번에 삽입 / 업데이트 할 여러 행이 있습니다. 방향을 알려주세요. 감사.
해결 방법
INSERT INTO beautiful (name, age)
VALUES
('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)
ON DUPLICATE KEY UPDATE
age = VALUES(age),
...
참조 페이지 https://stackoverflow.com/questions/2714587
반응형
'MySql' 카테고리의 다른 글
| MySQL While 루프를 사용한 MySQL 삽입 (0) | 2020.11.28 |
|---|---|
| MySQL MySQl 오류 # 1064 (0) | 2020.11.28 |
| MySQL SQLite INSERT-ON DUPLICATE KEY UPDATE (UPSERT) (0) | 2020.11.28 |
| MySQL WAMP 용 MySQL 데이터베이스 파일은 어디에 있습니까? (0) | 2020.11.28 |
| MySQL MYSQL : GROUP BY, LEFT JOIN 및 WHERE 절이있는 COUNT는 0 값을 반환하지 않습니다. (0) | 2020.11.28 |
댓글