У меня есть таблица, в которой есть столбец, в котором хранятся различные значения. Я хочу получить уникальные значения из этой таблицы, используя 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 ::::
DISTINCT находится в столбце 'id', где, как я хочу, Distinct в столбце city. Кто-нибудь знает, как это исправить.
EDIT2
Идентификатор уникален, потому что он имеет автоинкрементное значение. У меня есть реальные дубликаты в столбце города, такие как: Дели и Дели. Правильно .. Теперь, когда я пытаюсь получить данные из него, я получаю Дели два раза. Как я могу сделать запрос так:
select DISTINCT rec.city where state="xyz";
Потому что это даст мне правильный вывод.
EDIT3:
Кто-нибудь, кто может сказать мне, как выяснить этот запрос .. ???