Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как динамически выбрать колонку из таблицы?

7.3K
28 февраля 2007 года
JB13
64 / / 05.09.2005
Доброго времени суток. Такой вопрос.

скажем есть таблица, примерно такого содержания.
 
Код:
id int
col int
option0 varchar(255)
option1 varchar(255)
option2 varchar(255)
...
option20 varchar(255)


можно ли отображать необходимую колнку option исходя из col, т.е.

 
Код:
select
  col,
  concat('option', col)  -- здесь нужно выбрать option0, option1, и т.д.
from table1


сенкс.
13K
28 февраля 2007 года
whitehood
73 / / 02.11.2006
Может что то вроде этого? ;)
 
Код:
select concat('<option>', if (option1='good option', option1, 'other option'), '</option>') from option_table
286
28 февраля 2007 года
misha_turist
572 / / 28.11.2005
Смотря где, но помойму нет....
7.3K
01 марта 2007 года
JB13
64 / / 05.09.2005
Забыл сказать. Нужно для MySQL.
263
02 марта 2007 года
koltaviy
816 / / 16.12.2004
Так как ты говоришь, ИМХО, нельзя.
Но почему бы не оспользовать функцию IIf:
Примерно так:
 
Код:
SELECT table1.col, IIf(table1.col = 0, table1.option0, table1.option1) AS ColumnName
FROM table1

и т.д.(вложенные Iif'ы).
7.3K
05 марта 2007 года
JB13
64 / / 05.09.2005
[QUOTE="koltaviy"]
Так как ты говоришь, ИМХО, нельзя.
[/QUOTE]

Жаль :(

[QUOTE="koltaviy"]
о почему бы не оспользовать функцию IIf:
[/QUOTE]

Я так и сделал, но там 20 колонок, соответственно 19 вложенных ифов :). Хочется найти более красивое решение.
10
05 марта 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: JB13
Я так и сделал, но там 20 колонок, соответственно 19 вложенных ифов :). Хочется найти более красивое решение.


Головой надо было думать. Подобный геморрой - из-за ошибки проектирования. База нереляционная - что представлено у вас колонками, надо вынести в отдельную таблицу.

286
05 марта 2007 года
misha_turist
572 / / 28.11.2005
В Oracle для таких случаев есть динамический SQL, но я не знаю потдерживает ли его Мускул....
7.3K
07 марта 2007 года
JB13
64 / / 05.09.2005
[quote=Freeman]
Головой надо было думать. Подобный геморрой - из-за ошибки проектирования. База нереляционная - что представлено у вас колонками, надо вынести в отдельную таблицу.
[/quote]
Я обычно этим и думаю. :) Это в TorrentStrike так реализовано голосование.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог