Mysql
 sql >> база данни >  >> RDS >> Mysql

Връщането на заявка води в предварително определен ред

Не мислех, че това е възможно, но намерих запис в блога тук това изглежда прави нещата, които търсите:

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");

ще даде различни резултати за

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");

FIND_IN_SET връща позицията на id във втория аргумент, даден му, така че за първия случай по-горе, id от 7 е на позиция 1 в набора, 2 на 2 и така нататък - mysql вътрешно работи нещо като

id | FIND_IN_SET
---|-----------
7  | 1
2  | 2
5  | 3

след това нарежда по резултатите от FIND_IN_SET .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Причини за MySQL грешка 2014 Не може да се изпълняват заявки, докато други небуферирани заявки са активни

  2. Как да проверя дали PHP вече е свързан към база данни?

  3. MySql групово вмъкване

  4. Възможно ли е да се четат данни на MongoDB, да се обработват с Hadoop и да се извеждат в RDBS (MySQL)?

  5. Синтактична грешка или нарушение на достъпа:1059 Името на идентификатора е твърде дълго