- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Можно ли не выходя за рамки мускула реализовать запрос, возвращающий значение поля как название столбца?
Исходная таблица
Нужный результат
Задача абсурдная в своей постановке.
Не выходя за рамки мускула в результатах запроса вообще нет такого понятия как название столбца, там все данные одинаковы - просто данные.
Если Вы хотите что бы первой строкой вернулись все name , а во второй все value, то у постановки задачи появляется хоть какой-то смысл, но сама задача все равно абстрактная и теоретическая - если такое вдруг понадобилось сделать внутри мускула, значит у Вас что-то сильно не так в Вашем проекте.
Почему же абсурдная? Опции настроек, например...
Вы неправильно поняли условие, на самом деле. Поэтому и кажется задача глупой.
| vasya | petya | kolya | - это названия столбцов в ответе на запрос, т.е. стобец vasya = gad, столбец petya = kozel, а столбец kolya = durak. В исходной таблице названия столбцов - это значения name, результаты - value.
Понятно, что можно и по другому исходную таблицу построить, добавляя-удаляя по мере необходимости нужные поля с через ALTER.
Почему же абсурдная? Опции настроек, например...
Опции настроек "не выходя за рамки мускула"© ? Абсурдна втройне или мы что-то упустили и теперь "внутри мускула" можно апач настроить?:)
Вы неправильно поняли условие, на самом деле. Поэтому и кажется задача глупой.
Глупой она не кажется, она абсурдна.
| vasya | petya | kolya | - это названия столбцов в ответе на запрос, т.е. стобец vasya = gad, столбец petya = kozel, а столбец kolya = durak. В исходной таблице названия столбцов - это значения name, результаты - value.
Не выходя за рамки мускула в результатах запроса вообще нет такого понятия как название столбца, там все данные одинаковы - просто данные.
Если же Вам эти данные нужно за рамками мускула все же использовать, то есть куда как более стандартное (на php допустим) $settings[$r['name']]=$r['value']; в цикле и всего делов. Будет у Вас массив settings с данными типа settings['vasya']='gad' и все такое
Понятно, что можно и по другому исходную таблицу построить, добавляя-удаляя по мере необходимости нужные поля с через ALTER.
Абсурд. Данные надо хранить в полях таблицы, а не в самой структуре.
Можно ли не выходя за рамки мускула реализовать запрос, возвращающий значение поля как название столбца?
Чисто с академической точки зрения - можно в некоторых случаях, это называется транспонирование таблицы.
Можно попробовать noSql базы, к примеру MongoDB, она бесструктурная, полная свобода для работы с данными.
edogs, совершенно абсурдные ответы не в тему непонятно зачем. По сути-то есть что сказать? Я пока кроме как через временные таблицы вариантов не вижу других. Может можно и проще как-то. В ином случае лучше за мускулом обработать результат.
---------- Добавлено 22.04.2016 в 03:24 ----------
Ladycharm, во второй ссылке там жесткая привязка. Нужен именно случай заранее неизвестного количества строк в исходной таблице.
Я решение видел уже раньше, только давно уже. Вроде как в SimpleTDS что-то похожее реализовано с настройками. Завтра уже поищу исходники.
edogs, совершенно абсурдные ответы не в тему непонятно зачем. По сути-то есть что сказать?
Конкретное решение можно подсказать лишь зная какую задачу Вы хотите решить. Перевернуть таблицу просто ради того что бы перевернуть таблицу это абстракция. Но в принципе если у Вас мускул старше 5-ки, то хранимые процедуры в помощь, на них задача решаема, создаете таблицу исходя из выбранных полей по их шаблону, потом подгружаете в нее данные.
Если же Вам нужно решить какую-то прикладную задачу, например, выбрать в массив настройки, то это превосходно делается прямо и тупо - выборкой данных в массив, не надо усложнять.
лучше за мускулом обработать результат.
Так о чем и речь.