title: How to deliberately lock a MySQL row such that even SELECT will return an error?
body: <p>I'm trying to use MySQL row locking to basically emulate a MuteEx on a row. Lets say that my table has 2 columns, an id and a text field, and three entries (1,a) (2,b) and (3,c).
  SELECT * FROM table; would return these results.
  I can lock a specific row the normal way.</p>
  
  <pre><code>START TRANSACTION;
  BEGIN;
  SELECT * FROM table WHERE id = '2' FOR UPDATE;
  </code></pre>
  
  <p>However, if from a second connection I were to SELECT * from table. It would return all 3 results. Is there a way for row level locking to basically prevent any SELECT from seeing/using a row that is locked? Basically I'm trying to prevent anyone from using the row that is currently being used/manipulated, or even viewing the row as its data (since it's being used/manipulated) can't be trusted to be accurate at the time of a SELECT.</p>