2011-02-06 5 views
1

это способ реализовать итератор в MySQL, которая может возвращать столбец как «1/10» «2/10» ... «10/10»реализация MySQL итератора

Допустим, что форма имеет вид a/b, а для ввода мы имеем только b. Можно ли разрешить это без процедуры?

EDIT Пример. У нас есть отношение PRINTS (id, work_id, edition_no) и EDITIONS (id, work_id, size, edition_size). Для веб-интерфейса я пытаюсь отобразить выбор с возможными параметрами для отпечатков. Html-варианты должны выглядеть

<option value="1">1/10</option> 
<option value="2">2/10</option> 

Всего мой список выбора Я рендеринг с SQL из базы данных, но в данном случае я не вижу никакой возможности получить его из базы данных в пути мне нужно. Sql должен возвращать 2 столбца с опцией-значением и опционным-текстом. Это вопрос.

+1

Возможно, некоторые из примеров того, что вы хотели бы достичь? То, как вы это описываете, не совсем понятно. – Mchl

+1

SQL имеет дело с данными - похоже, вам нужна информация о * презентации * данных, которые могут быть встроены в запрос, но на самом деле этого не должно быть. Для PHP я предполагаю? –

+0

@OMG Ponies - Да, я работаю с PHP. Я знаю, что в PHP это не проблема для такой итерации, это не вопрос. Вопрос в том, как он будет выглядеть в Sql. Было ли это причиной для того, чтобы проголосовать за мой вопрос? – Anatoliy

ответ

0

SQL - это все отношения, то есть таблицы. Естественным способом было бы создать таблицу с одним столбцом с 10 (или сколько угодно) последовательными номерами, проиндексировать ее по этому столбцу и select оттуда, используя order by и limit.

0

Используйте CONCAT function to concatenate strings in MySQL:

SELECT CONCAT('<option value="', p.edition_no, '">', p.edition_no. '/', e.edition_size, '</option>') 
    FROM PRINTS p 
    JOIN EDITIONS e ON e.work_id = p.work_id 
+0

Спасибо за ваше предложение, но это не то, что я ищу. По вашему запросу я получу только 1 набор строк, и мне нужны все возможные ряды. Количество возможных наборов определяется редактором edition_size. Если для версии edition_size 5, мы должны получить 5 строк. – Anatoliy

+0

@Anatoliy: Я думаю, что вы неправильно читаете CONCAT для GROUP_CONCAT - это вернет строку, к которой многие присоединились. Я был неясно, с чем можно объединиться между таблицами, но я предлагаю вам проверить запрос или предоставить данные для подтверждения своих результатов (у других, вероятно, будет одна и та же проблема). –

Смежные вопросы