我有一个表,其中有一列存储了各种值。我想使用 dql 从该表中检索唯一值。
Doctrine_Query::create()
->select('rec.school')
->from('Records rec')
->where("rec.city='$city' ")
->execute();
现在我只想要独特的价值。谁能告诉我该怎么做...
编辑
表结构:
CREATE TABLE IF NOT EXISTS `records` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`state` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`city` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`school` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16334 ;
这是我正在使用的查询:
Doctrine_Query::create()
->select('DISTINCT rec.city')
->from('Records rec')
->where("rec.state = '$state'")
// ->getSql();
->execute();
为此生成 Sql 给了我:
SELECT DISTINCT r.id AS r__id, r.city AS r__city FROM records r WHERE r.state = 'AR'
现在检查 sql generated:::: DISTINCT在“id”列上,因为我希望在 city 列上区分。任何人都知道如何解决这个问题。
编辑2
Id 是唯一的,因为它是一个自动增量值。是的,我在城市列中有一些真正的重复项,例如:德里和德里。对..现在当我试图从中获取数据时,我两次到达德里。我怎样才能进行这样的查询:
select DISTINCT rec.city where state="xyz";
因为这会给我正确的输出。
编辑3:
谁能告诉我如何弄清楚这个查询..???