I don't think there is, but don't want to waste my time coding it. (I can't use anything third party atm)
How do you mean? Just moving a row across should take a few queries (or one if you exceptionally lazy) Code: LOCK TABLE src_table; INSERT INTO `dest_table` (c1, c2, c3) SELECT f1, f2, f3 FROM `src_table` WHERE condition; DELETE FROM `src_table` WHERE condition; UNLOCK TABLE src_table;
the problem is that these records have about 30 fields, so writing it all out would be a real pain. the tables are identical, so yes this is ought to be solved by having a status field, but it's out of my hands.
blimey, never expected that to work! unfortunately, I don't think I can use this as there may be clashes with unique IDs.
I was going to use something along the lines of PHP: $get = mysql_query("SELECT * FROM `source` WHERE ..."); $got = mysql_fetch_assoc($get); $qry = "INSERT INTO `dest` ('".join("', '", array_keys($got)) ."') VALUES (".join(", ", $got).")"; but this doesn't allow me to alter/omit any values, and is therefore no better than your idea! Perhaps if I make my own join() style function with a foreach($a as $k => $v) {} Any other ideas?