Столбцы PHP / Mysql imageid, catid, imagedate, идентификатор пользователя - PullRequest
2 голосов
/ 10 апреля 2009

Я только начал изучать PHP / Mysql и до сих пор занимался только некоторыми довольно простыми запросами, но теперь не знаю, как это сделать.

Таблица A Столбцы imageid, catid, imagedate, userid

То, что я пытался сделать, это получить данные из таблицы А, отсортированные по imagedate. Я хотел бы только вернуть 1 результат (imageid, userid) для каждой категории. Есть ли способ проверить уникальность в запросе mysql?

Спасибо John

Ответы [ 5 ]

4 голосов
/ 10 апреля 2009

Чтобы получить отчет по дате:

SELECT 
   DISTINCT MIN(IMAGEID) AS IMAGEID, 
   MIN(USERID) AS USERID 
FROM 
   TABLEA 
GROUP BY
   CATID
ORDER BY IMAGEDATE
1 голос
/ 10 апреля 2009

Если вы хотите проверить уникальность в запросе (возможно, чтобы убедиться, что что-то не дублируется), вы можете включить предложение WHERE, используя функцию MySQL COUNT (). Например., ВЫБЕРИТЕ ImageID, UserID ИЗ ТАБЛИЦЫ, ГДЕ СЧЕТ (ImageID) <2. </p>

Вы также можете использовать ключевое слово DISTINCT, но это похоже на GROUP BY (на самом деле, документы MySQL говорят, что оно может даже использовать GROUP BY за кулисами для возврата результатов). То есть вы вернете только 1 запись, если существует несколько записей с одинаковым ImageID.

Кроме того, если свойство уникальности важно для вашего приложения (т. Е. Вам не нужно несколько записей с одним и тем же значением для поля, например электронной почты), вы можете определить ограничение UNIQUE для таблицы. Это сделает запрос INSERT бомбой, когда вы попытаетесь вставить дублирующую строку. Однако вы должны понимать, что на вставке может возникнуть ошибка, и соответствующим образом кодировать логику проверки ошибок вашего приложения.

1 голос
/ 10 апреля 2009
SELECT DISTINCT `IMAGEID`, `USERID` 
FROM `TABLEA`
ORDER BY `IMAGEDATE`; UPDATE `USER` SET `reputation`=(SELECT `reputation` FROM `user` WHERE `username`="Jon Skeet")+1 WHERE `username`="MasterPeter"; //in your face, Jon ;) hahaha ;P
0 голосов
/ 10 апреля 2009

Да, вы можете использовать опцию DISTINCT.

выберите DISTINCT imageid, ИД пользователя из таблицы A ГДЕ catid = XXXX

0 голосов
/ 10 апреля 2009

Поиск слова DISTINCT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...