Is it possible to use value of first MySQL select as condition in second when autocommit is off?

StackOverflow https://stackoverflow.com/questions/16135399

  •  11-04-2022
  •  | 
  •  

Question

First of all, I'm still Learning how to work with PHP/MySQL... so is it possible at all to use transactions when selecting or only when inserting/updating?

If it is possible, then how would I solve this (pseudo-code):

Turn off autocommit

Select id from auth where alias = [user input]

Select active from flags where id = ID FROM ABOVE SELECT

If: no errors Commit

Else: Rollback

Fetch row from second select


Is the above possible to do with MySQL (PHP syntax, please)?

Était-ce utile?

La solution

Using transactions would be rather useless here, since your query only deals with a SELECT.

There are 2 choices here. (Do note that I've only included the SQL-code.)

1. You can use a SELECT inside a SELECT statement.

SELECT active
  FROM flags
 WHERE id IN (
               SELECT id
                 FROM auth
                WHERE alias = 'userinput'
             );

2. Other possibility is to use a JOIN.

    SELECT f.active
      FROM flags f
INNER JOIN auth a
        ON f.id = a.id
     WHERE a.alias = 'userinput';

Here, aliases like f and a are used to designate the tables.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top