Collections:
UPDATE with Subquery Returning No Rows in MySQL
What Happens If the UPDATE Subquery Returns No Rows in MySQL?
✍: FYIcenter.com
If you use a subquery to assign new values in the SET clause in an UPDATE statement, and the subquery returns no rows for an outer row, MySQL will provide a NULL value to the SET clause. The tutorial exercise below shows you a good example:
mysql> UPDATE fyi_links SET notes = 'Number one'
WHERE id = 0;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT id, url, notes, counts FROM fyi_links
WHERE id = 0;
+----+-------------------+------------+--------+
| id | url | notes | counts |
+----+-------------------+------------+--------+
| 0 | www.fyicenter.com | Number one | NULL |
+----+-------------------+------------+--------+
1 row in set (0.00 sec)
mysql> SELECT * FROM fyi_rates WHERE id = 0;
Empty set (0.00 sec)
mysql> UPDATE fyi_links SET notes = (
SELECT comment FROM fyi_rates
WHERE fyi_rates.id = fyi_links.id
)
WHERE id = 0;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT id, url, notes, counts FROM fyi_links
WHERE id = 0;
+----+-------------------+-------+--------+
| id | url | notes | counts |
+----+-------------------+-------+--------+
| 0 | www.fyicenter.com | NULL | NULL |
+----+-------------------+-------+--------+
1 row in set (0.00 sec)
⇒ Error: Subquery Returns More than 1 Row in MySQL
⇐ UPDATE Using Data from Other Tables in MySQL
2018-01-08, 3020🔥, 0💬
Popular Posts:
What Is an Oracle Tablespace in Oracle? An Oracle tablespace is a big unit of logical storage in an ...
How To Get Year, Month and Day Out of DATETIME Values in SQL Server Transact-SQL? You can use DATEPA...
How To Change the Password for Your Own User Account in MySQL? If you want to change the password of...
What Is the Difference Between GETDATE() and GETUTCDATE() in SQL Server Transact-SQL? The difference...
How To Get Year, Month and Day Out of DATETIME Values in SQL Server Transact-SQL? You can use DATEPA...