2016-09-14 4 views
4

Можно ли сравнить два поля базы данных в запросе api? Например, я хочу сравнить поля TSTAMP и crdate нравится:Запрос extbase для сравнения двух полей в одной таблице

SELECT * FROM tt_content WHERE tstamp > crdate; 

В апи запросов не удалось найти решение. Чтобы получить все записи и сравнить поля в цикле, это не выполняется, потому что это может быть более 2 миллионов записей (в моем реальном случае).

Благодарим за помощь.

ответ

2

Единственный способ, которым я могу думать (и что поддерживает построитель запросов), - это прямое предложение. Это будет выглядеть так:

$query = $contentElementRepository->createQuery(); 
$query->statement('SELECT * FROM tt_content WHERE tstamp > crdate'); 
$matchingContentElements = $query->execute(); 

Возможно, это сломает слой абстракции базы данных, поэтому используйте его с осторожностью. statement() имеет второй параметр, в который вы можете ввести параметры, если вам нужен пользовательский ввод в запросе.

Возможно, есть и другой способ сделать это, о котором я не знаю, я сам был бы очень заинтересован в этом.

Смежные вопросы