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

Трябва да изтегля данни въз основа на точната им последователност в масив

Идеята е резултатът да се подреди според съответната им позиция в масива. В този случай MySQL FIND_IN_SET функцията може да ви помогне.

Можете да добавите следния ред по изявление:

ORDER BY FIND_IN_SET(car.id,'3,10,7')

Забележка: Трябва да преобразувате тази поръчка по изявление във вашия еквивалентен cake php mysql запитване.

FIND_IN_SET

Примерно въвеждане:

заявка:

SELECT *
FROM cars
id
2
3
4
5
6
7
8
9
10
11

Изход:

заявка:

SELECT *
FROM cars
WHERE cars.id IN (3,10,7)
ORDER BY FIND_IN_SET(cars.id,'3,10,7')
id
3
10
7

Вижте SQLFIDDLE DEMO тук

Редактиране:

Не знам CAKE PHP syntax при изграждане на mysql заявка.

Но еквивалентната заявка в cake php mysql може да е нещо такова:

$cars = $this->car->find('all', array(
        'conditions' => array(
            'car.id' => array(3, 10, 7)
        ),
        'limit' => 3, 
        'order' => array(FIND_IN_SET('car.id' , '3,10,7'))
    ));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java Android AsyncTask + mysql връзка

  2. Как да настроите низ за връзка с Entity Framework

  3. Задаване СЕГА() като стойност по подразбиране за тип данни за дата и час?

  4. MySQL каза:Документация #1045 - Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:НЕ)

  5. Добавете колона с първичен ключ към стара таблица без първичен ключ