我想使用学说从 mysql 数据库中选择不同的年份:
使用mysql很容易做到这一点
SELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription
我在教义文档中找不到如何做到这一点,有人可以帮忙吗?
如果你想在 Doctrine 2 中使用这个,你可以使用这个扩展:
指南: http ://www.uvd.co.uk/blog/labs/using-mysqls-date_format-in-doctrine-2-0
代码: https ://github.com/uvd/Doctrine
这对我很有效
SQL 语句SELECT DISTINCT DATE_FORMAT( year , '%Y') as dates FROM Inscription
可以用 Doctrine 编写如下:
A. 如果您正在编写表格方法:
class InscriptionTable extends Doctrine_Table {
/* ... */
public function getDistinctYears()
{
return $this->createQuery('I')
->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
->setHydrationMode(Doctrine::HYDRATE_ARRAY)
->execute();
}
}
B. 如果您正在编写内联 DQL 调用:
InscriptionTable::getInstance()->createQuery('I')
->select('DISTINCT(DATE_FORMAT( year , '%Y')) years')
->setHydrationMode(Doctrine::HYDRATE_ARRAY)
->execute();
永远不要使用 distinct,尽可能使用 group by,如下所示:
SELECT DATE_FORMAT( year , '%Y') as dates
FROM Inscription
GROUP BY dates
我认为关于 group by 的教义文档很容易找到。
如果您使用 Postgresql,您将收到:
select('SUBSTRING(offer.date_closed, 0, 5)')
函数 substr(timestamp without time zone integer integer) 不存在
改用:
select('SUBSTRING(CONCAT(offer.date_closed, \'\'), 0, 5)')