Mysql setting a record as deleted or archive
You basically have two choices.  You could use a view to do the filtering though this has some performance issues on MySQL, or you could use a trigger to copy deleted rows into an archive table.  I suspect that on MySQL, the trigger solution will be much better (on other DB's the tradeoffs may go other ways.