sql >> Databasteknik >  >> RDS >> Mysql

Ordning efter värdens ordning i en SQL IN()-sats

Använd MySQL:s FIELD() funktion:

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

FIELD() returnerar indexet för den första parametern som är lika med den första parametern (förutom den första parametern själv).

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

kommer att returnera 1

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

kommer att returnera 3

Detta kommer att göra exakt vad du vill om du klistrar in ID:en i IN() satsen och FIELD() fungerar i samma ordning.



  1. En guide till partitionering av data i PostgreSQL

  2. Använder PHP 5.5:s password_hash och password_verify-funktion

  3. Att infoga nationella tecken i en oracle NCHAR eller NVARCHAR kolumn fungerar inte

  4. Oracle Externa tabeller