Home >> FAQs/Tutorials >> MySQL Tutorials

MySQL Tutorial - UPDATE with Subquery Returning No Rows

By: FYIcenter.com

(Continued from previous topic...)

What Happens If the UPDATE Subquery Returns No Rows?

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)

(Continued on next topic...)

  1. What Are DML Statements?
  2. How To Create a Testing Table?
  3. How To Insert a New Row into a Table?
  4. How To Specify Default Values in INSERT Statement?
  5. How To Omit Columns with Default Values in INSERT Statement?
  6. What Happens If Unique Value Constraints Are Violated?
  7. How To Insert Multiple Rows with One INSERT Statement?
  8. How To Update Values in a Table?
  9. How To Update Column Values on Multiple Rows?
  10. How To Use Existing Column Values in the SET Clause?
  11. Is the Order of Columns in the SET Clause Important?
  12. How To Use Values from Other Tables in UPDATE Statements?
  13. What Happens If the UPDATE Subquery Returns No Rows?
  14. What Happens If the UPDATE Subquery Returns Multiple Rows?
  15. How To Delete an Existing Row from a Table?
  16. How To Delete Multiple Rows from a Table?
  17. How To Delete All Rows in a Table?

MySQL Tutorials:

More...


Other Tutorials/FAQs:

More...


Related Resources:

More...


Selected Jobs:

More...