Jay Blanchard wrote:

[snip]
When I run the follow query:

DELETE
FROM table
WHERE client_id = 1
AND row_id IN (2,5,7)

only the first record is deleted.
Am I doing something wrong or is it a MySQL bug?
[/snip]

It is not a bug, just say it out loud....
"AND row_id is 2 OR 5 OR 7"

Once the OR condition is satisfied once, the query will halt.

What are you talikng about? Queries don't halt on the first row matched. For example:


  mysql> SELECT * FROM t;
  +-----------+--------+
  | client_id | row_id |
  +-----------+--------+
  |         1 |      1 |
  |         1 |      2 |
  |         1 |      3 |
  |         1 |      4 |
  |         1 |      5 |
  |         1 |      6 |
  |         1 |      7 |
  |         2 |      1 |
  |         2 |      2 |
  |         2 |      3 |
  |         2 |      4 |
  |         2 |      5 |
  |         2 |      6 |
  |         2 |      7 |
  +-----------+--------+
  14 rows in set (0.00 sec)

  mysql> SELECT * FROM t
      -> WHERE client_id = 1
      -> AND row_id IN (2,5,7);
  +-----------+--------+
  | client_id | row_id |
  +-----------+--------+
  |         1 |      2 |
  |         1 |      5 |
  |         1 |      7 |
  +-----------+--------+
  3 rows in set (0.01 sec)

  mysql> DELETE FROM t
      -> WHERE client_id = 1
      -> AND row_id IN (2,5,7);
  Query OK, 3 rows affected (0.00 sec)

  mysql> SELECT * FROM t
      -> WHERE client_id = 1
      -> AND row_id IN (2,5,7);
  Empty set (0.00 sec)

The question is: what do you (Ronan) mean by "only the first record is deleted"? If you run

  SELECT * FROM table
  WHERE client_id = 1
  AND row_id IN (2,5,7)

how many rows do you get?

Michael




-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to