LMSouq
database Open

MySQL ON DUPLICATE KEY UPDATE for multiple rows insert in single query

PR
Prashant
1 month ago
3 views
Problem Description
I have a SQL query where I want to insert multiple rows in single query. so I used something like: $sql = "INSERT INTO beautiful (name, age) VALUES ('Helen', 24), ('Katrina', 21), ('Samia', 22), ('Hui Ling', 25), ('Yumie', 29)"; mysql_query( $sql, $conn ); The problem is when I execute this query, I want to check whether a `UNIQUE` key (which is not the `PRIMARY KEY`), e.g. `'name'` above, should be checked and if such a `'name'` already exists, the corresponding whole row should be updated otherwise inserted. For instance, in the example below, if `'Katrina'` is already present in the database, the whole row, irrespective of the number of fields, should be updated. Again if `'Samia'` is not present, the row should be inserted. I thought of using: INSERT INTO beautiful (name, age) VALUES ('Helen', 24), ('Katrina', 21), ('Samia', 22), ('Hui Ling', 25), ('Yumie', 29) ON DUPLICATE KEY UPDATE Here is the trap. I got stuck and confused about how to proceed. I have multiple rows to insert/update at a time. Please give me a direction. Thanks.

AI-Generated Solution

Powered by LMSouq AI · GPT-4.1-mini

✓ Solution Ready
Analyzing problem and generating solution…
Was this solution helpful?
Back to Knowledge Base