powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать все поля, названия которых соответствуют шаблону
15 сообщений из 15, страница 1 из 1
Выбрать все поля, названия которых соответствуют шаблону
    #38853775
ShutTap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
В таблицах есть поля со схожими названиями, отличающиеся только номером.
Например: field_1, field_2, field_3 ... field_N
Количество может быть разным.
Помогите пожалуйста составить запрос, чтобы выбирались все поля, названия которых состоят только из "field_" и числа далее
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38853788
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create procedure + prepared statement
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38853819
ShutTap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно на примере или поподробнее порядок действий?
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38853869
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShutTap,

11309686
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38853891
ShutTap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ух ё-моё... С моим уровнем знаний такое не осилить, сразу как минимум...
На русском не подскажите ресурсы, чтоб понять, что происходит и зачем в строках? Идеально - пример с русскими комментариями...
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38853924
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE DEFINER = 'root'@'localhost'
PROCEDURE baza.procedure1()
BEGIN
DECLARE s VARCHAR(255);
-- выбираем все нужные столбцы в переменную %s
SELECT group_concat(`COLUMN_NAME` order by `COLUMN_NAME`delimiter ',') into @s
FROM information_schema.`COLUMNS`
WHERE TABLE_SCHEMA = 'база'
 AND TABLE_NAME = 'таблица'
 AND `COLUMN_NAME` like 'field_%';
-- собираем запрос (в ту же переменную)
SET @s := concat('select ',@s,' from таблица';
-- и выполняем его
PREPARE stmt FROM @s; 
EXECUTE clr;
DEALLOCATE PREPARE clr;
END
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38853978
ShutTap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за пример, вроде так в целом с помощью гугла понятно
пишется эта конструкция как обычный запрос?
не совсем понимаю, зачем тогда указывать саму базу данных, если как бы уже с ней работаем, и для чего нужно CREATE DEFINER = 'root'@'localhost' ?
еще на счет названия столбца, `COLUMN_NAME` like 'field_%' , можно ли как-то указать, что в правой части должно быть только число? так как могут быть столбцы с текстом, вроде field_option, к примеру
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854009
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShutTap,

может лучше базу переделать на нормальный лад???

вот зачем в базе поля name_1 name_2 name_3 ??

если можно вынести в отдельную таблицу и привязать её?

что значит все поля по типу name_# номер, ты не знаешь изначально сколько таких полей и эти самые номера...типо столбики добавляются и удаляются юзерами?

это не ты два месяца назад описывал проблему с системой, где юзеры могут добавить и удалить столбик в базе, и тебе советывали либо сразу переделать базу, либо выучить препеа стейтмент!?
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854018
ShutTap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не, вроде не я, с такой проблемой только ща столкнулся. да юзеры могут добавить и удалить. это в готовой cms, по-этому бд переделать нереально
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854023
ShutTap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а может и я, уже не помню... была похожая проблема, но там решил формированием запроса на php, т.к. можно было взять количество.
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854125
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShutTapпишется эта конструкция как обычный запрос?Да. Не забывайте про delimiter.
ShutTapне совсем понимаю, зачем тогда указывать саму базу данных, если как бы уже с ней работаемэто необязательно
ShutTapи для чего нужно CREATE DEFINER = 'root'@'localhost' ?ну почитайте уже ман по create procedure...
ShutTapеще на счет названия столбца, `COLUMN_NAME` like 'field_%' , можно ли как-то указать, что в правой части должно быть только число?ну возьмите вместо лайка регэксп
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854139
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirShutTapне совсем понимаю, зачем тогда указывать саму базу данных, если как бы уже с ней работаемэто необязательноОбязательно, если в другой схеме может случиться таблица с таким же именем.
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854475
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

даже если мы явно работаем (use %dbname%) в определённой схеме?
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854480
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirmiksoft,

даже если мы явно работаем (use %dbname%) в определённой схеме?Да.
http://dev.mysql.com/doc/refman/5.5/en/columns-table.html
См. последний коммент от August 22 2010 11:41am
Да и самостоятельно проверить несложно.
...
Рейтинг: 0 / 0
Выбрать все поля, названия которых соответствуют шаблону
    #38854526
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, только теперь дошло - то, о чём на самом деле спрашивал ТС, для меня было настолько очевидно, что я не понял ни его вопроса, ни вашего ответа :)
я-то думал, вопрос про baza .procedure1()
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать все поля, названия которых соответствуют шаблону
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]