Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Операция с данными в ячейке 
V
    Опции темы
Alek74
Дата 6.9.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.3.2006

Репутация: нет
Всего: нет



Ячейка таблицы содержит два слова разделенных пробелами.

Нужно поменять их местами.

Можно ли это сделать с помощью запроса, или надо задействовать php?
--------------------
---------------------------------- «Филисофия жизни ©»  ---------------------------------- 
PM MAIL   Вверх
Ignat
Дата 6.9.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Фуфф... Ну без извратов никак.

Код

UPDATE `table` SET `textfield`=CONCAT_WS(' ', SUBSTRING(`textfield`, LOCATE(' ', `textfield`)+1 ), SUBSTRING(`textfield`, 1, LOCATE(' ', `textfield`)-1 ) ) WHERE cond;

не проверял...

Это сообщение отредактировал(а) Ignat - 6.9.2006, 12:45


--------------------
Теперь при чем :P
PM   Вверх
Alek74
Дата 6.9.2006, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.3.2006

Репутация: нет
Всего: нет



Что означает WHERE cond;
--------------------
---------------------------------- «Филисофия жизни ©»  ---------------------------------- 
PM MAIL   Вверх
Ignat
Дата 6.9.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Alek74 @  6.9.2006,  13:36 Найти цитируемый пост)
Что означает WHERE cond; 

Я имел в виду:  cond - condition, условие для выборки. Любое выражение, содержащее предикаты выборки.



--------------------
Теперь при чем :P
PM   Вверх
Alek74
Дата 6.9.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.3.2006

Репутация: нет
Всего: нет



Тогда не работает.
Код

UPDATE `books` SET `author`=CONCAT_WS(' ', SUBSTRING(`author`, LOCATE(' ', `author`)+1 ), SUBSTRING(`author`, 0, LOCATE(' ', `author`)-1 ) ) WHERE author;

--------------------
---------------------------------- «Филисофия жизни ©»  ---------------------------------- 
PM MAIL   Вверх
Ignat
Дата 6.9.2006, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Alek74 @  6.9.2006,  13:51 Найти цитируемый пост)
Тогда не работает.

Я исправил, там 0 на 1 заменить надо.


--------------------
Теперь при чем :P
PM   Вверх
Alek74
Дата 6.9.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.3.2006

Репутация: нет
Всего: нет



Цитата(Ignat @ 6.9.2006,  12:54)
Цитата(Alek74 @  6.9.2006,  13:51 Найти цитируемый пост)
Тогда не работает.

Я исправил, там 0 на 1 заменить надо.

Ага. Теперь работает....

Просто удалил все первые слова.

--------------------
---------------------------------- «Филисофия жизни ©»  ---------------------------------- 
PM MAIL   Вверх
Ignat
Дата 6.9.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Alek74 @  6.9.2006,  13:58 Найти цитируемый пост)
Просто удалил все первые слова.

Я понял... Просто:
Цитата(Ignat @  6.9.2006,  13:28 Найти цитируемый пост)
не проверял...





--------------------
Теперь при чем :P
PM   Вверх
Alek74
Дата 6.9.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.3.2006

Репутация: нет
Всего: нет



Почитал про эти функции, но так и не понял как это должно работать в сборке.

По отдельности понятно, а в целом нет.

Какой алгоритм?
--------------------
---------------------------------- «Филисофия жизни ©»  ---------------------------------- 
PM MAIL   Вверх
muzer
Дата 6.9.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



Ошибок в коде Ignat'а не вижу.

Ещё моно так:

Код

UPDATE books SET author=CONCAT_WS(' ',SUBSTRING_INDEX(author,' ',-1),SUBSTRING_INDEX(author,' ',1));

Тоже не проверял.


А алгоритм простой: 
соединяем через  ("пробел", второе слово, первое слово)

где: первое слово - часть строки до пробела, второе слово - часть строк после пробела.
PM WWW   Вверх
Ignat
Дата 6.9.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(muzer @  6.9.2006,  16:57 Найти цитируемый пост)
SUBSTRING_INDEX

Ааааааа.... Точно  smile  Посыпаю голову.


--------------------
Теперь при чем :P
PM   Вверх
Alek74
Дата 6.9.2006, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.3.2006

Репутация: нет
Всего: нет



Вопрос на засыпку - а если слов будет три?
--------------------
---------------------------------- «Филисофия жизни ©»  ---------------------------------- 
PM MAIL   Вверх
Ignat
Дата 6.9.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Alek74 @  6.9.2006,  18:27 Найти цитируемый пост)
Вопрос на засыпку - а если слов будет три?

В моём запросе первое слово переместится в конец, а в запросе muzer'а произойдет дублирование второго, при этом порядок будет такой: 2 3 1 2


--------------------
Теперь при чем :P
PM   Вверх
Ignat
Дата 6.9.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



нет, нифига... протупил.... 
muzer, будет 1 3, а второе выпадет.


--------------------
Теперь при чем :P
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.