是否可以比较查询API中的两个数据库字段?例如,我想比较字段tstamp和crdate,如:
struct student_record
{
string firstname, lastname;
double age, income;
int number_of_children;
char sex;
//operator declaration
bool operator==(student_record const& other) const;
};
//operator definition
bool student_record::operator==(student_record const& other) const
{
return (this->firstname == other.firstname &&
this->lastname == other.lastname &&
this->sex == other.sex); //you can compare other members if needed
}
在查询api中我找不到解决方案。获取所有记录并比较循环中的字段不是一种执行方式,因为这可能超过200万条记录(在我的实际案例中)。
感谢您的帮助。
答案 0 :(得分:2)
我能想到的唯一方法(以及查询构建器支持)是直接提供语句。它看起来像这样:
$query = $contentElementRepository->createQuery();
$query->statement('SELECT * FROM tt_content WHERE tstamp > crdate');
$matchingContentElements = $query->execute();
这可能会破坏数据库抽象层,因此请谨慎使用。 statement()
有第二个参数,您可以在其中放置参数,以防您在查询中需要一些用户输入。
也许有另一种方法可以做到这一点,我不知道,我自己真的很感兴趣。