sql >> Database >  >> RDS >> Mysql

Ordenen op volgorde van waarden in een SQL IN()-clausule

Gebruik MySQL's FIELD() functie:

SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])

FIELD() zal de index van de eerste parameter teruggeven die gelijk is aan de eerste parameter (anders dan de eerste parameter zelf).

FIELD('a', 'a', 'b', 'c')

zal 1 teruggeven

FIELD('a', 'c', 'b', 'a')

zal terugkeren 3

Dit zal precies doen wat je wilt als je de id's plakt in de IN() clausule en de FIELD() functie in dezelfde volgorde.



  1. Hoe SQL-variabelen in PHP te binden?

  2. Hoe kan ik een veld van mijn spinner bijwerken met gebruikersinvoer in EditText

  3. Berichten ophalen uit mailbox met behulp van PL/SQL Mail_Client API

  4. Java - zoek de eerste oorzaak van een uitzondering