sql >> Databáze >  >> RDS >> Mysql

Seřazení podle pořadí hodnot v klauzuli SQL IN().

Použijte FIELD() funkce:

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

FIELD() vrátí index prvního parametru, který je roven prvnímu parametru (jiný než samotný první parametr).

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

vrátí 1

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

vrátí 3

To udělá přesně to, co chcete, pokud vložíte ID do IN() klauzule a FIELD() fungovat ve stejném pořadí.



  1. Oracle PL/SQL:Vytvořte balíček DML online

  2. Jak ASIN() funguje v MariaDB

  3. Jak mohu převést SQL Server 2008 DateTimeOffset na DateTime

  4. K získání informací o serveru v SQL Server použijte SERVERPROPERTY().