2013-07-26 4 views
2

Я не уверен, как задать вопрос, чтобы я не был уверен, что я ищу. Вот что я пытаюсь сделать.mysql строка возврата для каждого значения столбца поля

Моя таблица имеет Почтовые индексы и встречную колонку

id zipcode count 
11 50022 23 
12 50023 1 
13 50025 8 
14 50042 2 
15 50076 2 

мне нужно иметь оператор выбора, который возвращает Почтовые индексы X суммы в столбце счетчика (целое значение).

Так выберите возвращение выглядит следующим образом:

50022 
50022 
50022 
50022 
50022 
50022 (and on 23 times) 
50023 (one record here) 
50025 (there were eight of these so eight records). 

и так далее.

Есть ли функция или группировка функций, которые могут быть достигнуты в MySQL?

Это часть более крупного запроса, поэтому я не могу справиться с этим в серверном коде (иначе я бы просто создал цикл).

Надеюсь, все это имеет смысл и благодарит заранее!

UPDATE: Я не пытаюсь получить четкую группировку ... делая обратное (как заметил один человек ниже).

+0

Вы должны создать SQLFiddle и показать нам, что вы уже пробовали. – DevlshOne

ответ

0

Это может быть то, что вы хотите. Хотя я не понял ваш вопрос достаточно хорошо ..

$q = mysql_query("SELECT count FROM <table> WHERE zipcode='50022'"); 

    while($data = mysql_fetch_array($q)){ 
    echo "The {$data['zipcode']} is {$data['count']} times printed."; 
    for($i=1;$i<=$data['count'];$i++){ 
     echo $i." - ".$data['zipcode']; 
} 
    } 

UPDATE:

, если вы пытаетесь сделать это внутри MySQL попробовать это в SQL запросе

SELECT count FROM <table> WHERE zipcode='50022' 

<table> изменения с вашего стола имя.

+0

Это похоже на PHP-код (я делаю это в представлении внутри MySQL). Я не пытаюсь получить значение счета. –

+0

Я обновил ответ. –

0

Я думаю, что вы ищете группу sql by clause. Этот раздел позволяет группировать данные по определенному квалификатору и добавляться в ваш оператор select.

Так что, если я правильно понимаю, и вы Распределите Почтовые индексы в колонке подсчета вы могли бы сделать что-то вдоль линий:

SELECT, FROM почтового индекса [table_name] GROUP BY подсчета;

Надеюсь, это поможет.

+0

Я думаю, вы неправильно поняли вопрос. Он хочет, чтобы обратная группа GROUP BY. Для каждого почтового индекса есть только одна запись. Он хочет, чтобы почтовый индекс появлялся определенное количество раз. Например, первая строка, столбец «count» равен 23, поэтому он хочет, чтобы этот почтовый индекс появлялся 23 раза. – Y0lk

+0

А, тогда да, я неправильно понял. Извини за это. – Tcarp

0

Создание фиктивной таблицы, как показано ниже

CREATE TABLE `dummy1` (
    `dummyId` int(11) NOT NULL, 
    PRIMARY KEY (`dummyId`) 
) 

insert into dummy1 values(1),(2),(3), (4), (5),.......(n); 

где n существо является довольно большим количеством

после такого использования он ниже запроса для заполнения результата

select zipcode from yourtable, dummy1 where countValue <= dummyId order by zipcode 

Я знаю, что это а не аккуратное решение.Но так как MySQL не поддерживает connect by, как оракул делает, это, кажется, решение для преодоления такого рода ситуаций

За аналогичный вопрос, Refer This