как получить не дублированные результаты в mysql

Я пытаюсь добраться, результаты mysql, не позволяя определенной области повторяется больше чем 5 раз.

Например, позволяет, говорят, что у меня есть стол как это:

-------------
Name        City    
person1     Nashville
person2     Nashville
person3     Nashville
person4     Nashville
person5     Nashville
person6     Nashville
person7     New York
-------------

То, что я хочу, чтобы он возвратил, является этим:

-------------
Name        City    
person1     Nashville
person2     Nashville
person3     Nashville
person4     Nashville
person5     Nashville
person7     New York
-------------

где городская область не может быть повторена больше чем пять раз! если это было повторено больше, чем фиксируют времена, только возвратите первые пять результатов.

Этот вопрос мог быть невозможным (именно это я предполагаю), но если есть решение или так или иначе работать вокруг того, чего я пытаюсь достигнуть, пожалуйста, скажите мне! Я могу использовать PHP.

2
nl ja de
два комментария выше меня ясно показывают, что люди слишком ленивы, чтобы написать код и объяснить, не делая глупый комментарий о вопросе.
добавлено автор shnisaka, источник
группа, наличие, учитывается... и т.д.:)
добавлено автор duedl0r, источник
ха-ха.. люди также слишком ленивы, чтобы провести их собственное исследование и задать глупые вопросы:)
добавлено автор duedl0r, источник
Невозможный? It' s едва налоговый!
добавлено автор Strawberry, источник

3 ответы

Как насчет чего-то вроде этого, что использует переменные, чтобы проверить текущий ряд к предыдущему ряду, если они - то же самое тогда, увеличится номер строки, если они не будут номером строки, то перезагрузит:

select name, city
from
(
  select name, 
    city,
    @row:=(case when @prev=city then @row else 0 end) + 1 as rownum,
    @prev:=city pcity
  from yourtable
  order by city, name
) src
where rownum <= 5

See SQL Fiddle with Demo

Результат:

|    NAME |      CITY |
-----------------------
| person1 | Nashville |
| person2 | Nashville |
| person3 | Nashville |
| person4 | Nashville |
| person5 | Nashville |
| person7 |  New York |
7
добавлено
действительно хороший пример. Я выберу его как правильный ответ. но я хотел бы видеть то, что могут сделать другие.
добавлено автор shnisaka, источник
@DawidSajdak я уже сделал =),
добавлено автор shnisaka, источник
хороший один чувак!
добавлено автор Dawid Sajdak, источник
@shnisaka вы должны, выбирает его как правильный ответ прямо сейчас, никто ничего не придумывает лучше!
добавлено автор Dawid Sajdak, источник

Вам разрешают выполнить больше чем одну команду MySql? Если так, можно попытаться делать два отдельных требования-

SELECT name, city FROM table WHERE city = 'Nashville' ORDER BY name LIMIT 5;
SELECT name, city FROM table WHERE city <> 'Nashville' ORDER BY name;

Кто-то, возможно, должен проверить это, но общее представление стоит. Единственная проблема с этим - ваш конечный результат, не заказали бы стол по имени. Скорее у этого были бы люди с городом, имеет 'Нэшвилл' сначала, и затем всех остальных.

1
добавлено
Я не сделал downvote вы, но это требует знания заранее названий города, относительно которых я сомневаюсь, будет, знают во время выполнения запросов.
добавлено автор Taryn, источник
Не уверенный, почему я был downvoted. Комментарии помогли бы.
добавлено автор aug, источник
А-а-а это имеет смысл. Жаль я полностью забыл об этом. Я на самом деле своего рода newb к SQL и I' m, просто пытаясь больше принять участие. Спасибо за совет:) и большой ответ btw.
добавлено автор aug, источник
    SELECT x.*
      FROM my_table x 
      JOIN my_table y
        ON y.name <= x.name 
       AND y.city = x.city 
     GROUP 
        BY x.city
         , x.name 
    HAVING COUNT(*) <= 5;
0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp