lundi 24 octobre 2016

Run SQL statement based on sql count

I want to run one SQL query based on first COUNT sql query:

SET @result = "SELECT count(*) FROM ip_addresses WHERE id > (SELECT id FROM ip_addresses WHERE in_use=1) ORDER BY id LIMIT 1"
CASE WHEN (@result > 0)
    THEN SELECT * FROM ip_addresses WHERE id > (SELECT id FROM ip_addresses WHERE in_use=1) ORDER BY id LIMIT 1
    ELSE SELECT * FROM ip_addresses WHERE in_use!=1 ORDER BY id LIMIT 1
END

Basically what I'm trying to do is: if ip_addresses table have following data

 id|     ip     |in_use
 1 | 192.168.1.5|1
 2 | 89.58.1.2  |0
 3 | 58.98.58.6 |0

Now it should return second record.

And if ip_addresses table have following data

 id|     ip     |in_use
 1 | 192.168.1.5|0
 2 | 89.58.1.2  |0
 3 | 58.98.58.6 |1

Now it should return first record.

Aucun commentaire:

Enregistrer un commentaire