Если иначе в порядке по пункту в БД API Drupal
Я имею Drupal 7
сайт. я использую dbApi
Drupal. Теперь у меня есть запрос, где мне нужно заказать записи.
Структура таблицы: -
- ALBUMID
- Название альбома
- Дата создания альбома
- Дата выхода альбома
Теперь мое требование, если Album Release Date
не NULL, тогда сортируйте это, иначе используйте Album Created Date
для сортировки.
$query = db_select('node', 'n');
$query->condition('n.type', 'albums', '=')
->condition('status', 1) //Published.
->fields('n', array('nid'))
->orderBy('field_album_release_date_value', 'DESC')
->execute();
$result = $query->execute();
Любая помощь высоко ценится.
1 ответ
Да, это возможно. Вы должны использовать addExpresion($expression).
$query = db_select('node', 'n');
$query->condition('n.type', 'albums', '=')
->condition('status', 1) //Published.
->fields('n', array('nid'));
$query->addExpression('IF(n.field_album_release_date_value is null,'
. 'n.field_album_release_date_value, n.field_album_create_date_value)'
. ' as available_date');
$query->orderBy('available_date', 'DESC');
$result = $query->execute();
Это не проверялось, поэтому вам может потребоваться настроить его, но факт заключается в том, что вы можете использовать addExpression для вставки функций sql, таких как min max или в вашем случае if.