![]() |
|
Модераторы: skyboy |
![]()
|
|
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Есть таблица ТЕСТ, её содержание:
adres col1 col2 col3 res col1 1 2 3 col2 3 4 5 col1 7 4 3 col3 2 3 3 .... В первой колонке имя колонки с которой нужно работать. Нужно помотреть что в adres, и его например умножить на 2 и записать в res. Вот мой неработающий вариант:
Кажись pдесь некоректная робота с переменными. Сейчас я делаю это в цикле. Но хочется от него избавится и сделать в одном запросе именно на МиСКЛ. Это сообщение отредактировал(а) steven13 - 15.5.2005, 21:54 |
|||
|
||||
| Illuminaty |
|
||||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
Насколько я понимаю, aaa - переменная, в ней хранится одно! значение.
Значение, а не имя поля. Даже если бы пример работал, то в res оказалось бы значение 'col1' * 2 (к примеру). Можно переменные использовать так (пример с оф. сайта)
В MySQL можно задавать переменные непосредственно или через SELECT. Больше, кажется, никак. Почему бы не сделать проще?
Может так проще |
||||
|
|||||
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Так и работает.
Только это большая таблица с громадными формулами. Оброботка проходит около десяти минут. И хотелось-бы это сделать одним запросом. |
|||
|
||||
| Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
Я, конечно, сделал все в одном запросе, но это большой изврат хотя и красивый
Пусть adres - BINARY(2) и в нем хранятся номера столбцов, с которыми будет происходить операция умножения. Теперь сам запрос
Данный запрос работает на 100%! Попробуй |
|||
|
||||
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Супер!!!!!!!!!!
Работает! Идею я понял. Одна проблема. Я тут упростил задачу, у меня не 3 колонки а 9!!! Где об этом почитать. И я нехняю что делает оператор >>/ |
|||
|
||||
| Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
>> - это оператор битового сдвига вправо
почитать можно здесь(ссылочку на весь сайт запомни - пригодится еще С 9 столбцами там другие выражения придется использовать - эти только для 3! Ты сначала на скорость протести прежде чем для 9 писать |
|||
|
||||
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Огромное спасибо!
Завтра всё прочитаю! Очень помог!!! Я уже это привентил в другой части! И работает!!! Возможно есть и другие способа? Например применимые для 9 столбцов!!! |
|||
|
||||
| Illuminaty |
|
|||
![]() /*Антон Захаров*/ ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1238 Регистрация: 19.3.2005 Где: Россия, Казань Репутация: 3 Всего: 56 |
Лучше столбцы нумеровать с 0 но 8, а в adres хранит степени 2, т.е. 1 соответствует col0, 2 - col1, 4 - col2, 8 - col3, ..., 256 - col8.
Тогда запрос принимает менее извратный вид:
Так то лучше будет? Это сообщение отредактировал(а) Illuminaty - 16.5.2005, 00:34 |
|||
|
||||
| steven13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 31.3.2005 Где: http://city.vin.c om.ua Репутация: нет Всего: нет |
Работает!
|
|||
|
||||
| setnull |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 3.7.2007 Репутация: нет Всего: 1 |
можно еще так
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |