RE: [PHP-DB] Using an array(-ish) in SQL queries
| From: | Bastien Koert | Date: | Wed, 03 Nov 2004 01:13:39 +0000 |
| Subject: | RE: [PHP-DB] Using an array(-ish) in SQL queries | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-37163@lists.php.net to get a copy of this message | ||
DELETE FROM the_table WHERE
ID IN(1,2,3,4,5,6) will work just fine. The trick is to be sure that
those records indeed are to be deleted. I prefer to mark the record as deleted for a time before permanent deletion. That way its recoverable should something really bad happen.
bastien
From: -{ Rene Brehmer }- <metalbunny@metalbunny.net> To: php-db@lists.php.net,mysql@lists.mysql.com Subject: [PHP-DB] Using an array(-ish) in SQL queries Date: Wed, 03 Nov 2004 01:29:20 +0100 X-posted to MySQL and PHP DB Hi gang Task at hand: deleting or selecting (same difference) several numbers of records using only 1 query. My first version simply looped through all the ticked off IDs and ran a single query for each delete routine. I've still not suceeded in getting the delete queries to work on multiple tables at once, despite the column names being the same. But besides this: My current version generates, for multi-select cases, queries like this: DELETE FROM the_table WHEREID='1' OR ID='2' ORID='3' ORID`='4' ORID='5' ORID='6' or similar with the SELECT statement. On some occasions this can result in a very large amount of OR statements, like for 50 IDs totally. I've been reading through the MySQL manual and the comments in the select and delete parts, but cannot seem to find any mentioning of an easier way to do this. Or it's been deluting me cuz English is my second language, so the MySQL manual doesn't always make much sense to me. I'm looking for something like passing on an array (as comma-seperated-list maybe), and then just do statements like: DELETE FROM the_table WHEREIDISIN(1,2,3,4,5,6) Did I totally miss that part of the manual, or is it just not possible with MySQL ? Now, for my script it doesn't really matter much which approach to use, but was more thinking performance wise it ought to be faster and less taxing for the server to parse an SQL statement that's closer to table structure, rather than the OR statements that has to be transformed first. Sorry if I'm just a blind mouse that can't seem to find things in the MySQL manual. It's not really my best friend... TIA Rene -- Rene Brehmer aka Metalbunny If your life was a dream, would you wake up from a nightmare, dripping of sweat, hoping it was over? Or would you wake up happy and pleased, ready to take on the day with a smile? http://metalbunny.net/ References, tools, and other useful stuff... Check out the new Metalbunny forums at http://forums.metalbunny.net/ -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php