假设我有属性country
的实体User
。 country
只是一个字符串,许多用户可以设置相同的country
。那么如何获取所有用户的所有唯一国家/地区的列表呢?我正在使用Symfony2.8和Doctrine。
你需要
使用DISTINCT
子句:https://www.w3schools.com/sql/sql_distinct.asp
以下是从控制器执行此操作的方法:
$qb = $em->getRepository("MyBundle:Country")->createQueryBuilder("c");
$countries = $qb->select("c")
->distinct(true)
->getQuery()
->getResult();
一个衬里:
$countries = $em->getRepository("MyBundle:Country")->findBy(array('distinct' => true));
但是,如果我是你,我会创建一个独特的国家实体,并在用户和国家之间建立 ManyToOne 关系。