Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как добавить в поле базы значения другого поля?
 
 автор: Tael   (23.07.2009 в 17:41)   письмо автору
 
 

Какой sql-запрос для добавления в поле базы значения другого поля? (этой же таблицы)

  Ответить  
 
 автор: Волки   (23.07.2009 в 18:02)   письмо автору
 
   для: Tael   (23.07.2009 в 17:41)
 

update `mytable` set `field` = `field2` where `id` = 333

  Ответить  
 
 автор: Tael   (24.07.2009 в 11:24)   письмо автору
 
   для: Волки   (23.07.2009 в 18:02)
 

Ага, спасибо!
Но если я делаю update, то данные полностью заменяются, а мне нужно добавить, с сохранением и уже существующей в этом поле информации

  Ответить  
 
 автор: Trianon   (24.07.2009 в 11:39)   письмо автору
 
   для: Tael   (24.07.2009 в 11:24)
 

пример?
Было, стало.

  Ответить  
 
 автор: Tael   (24.07.2009 в 11:57)   письмо автору
 
   для: Trianon   (24.07.2009 в 11:39)
 

Было два поля, я хочу просто значения значения одного добавить к значениям другого, так чтобы в новом поле были и прежние и новые значения..
А в случае update я получаю просто два одинковых поля..

  Ответить  
 
 автор: Trianon   (24.07.2009 в 12:02)   письмо автору
 
   для: Tael   (24.07.2009 в 11:57)
 

пример конкретных значений приведите пожалуйста.
поле таблицы БД одновременно не может хранить два разных значения. Может только одно.

  Ответить  
 
 автор: Tael   (24.07.2009 в 12:10)   письмо автору
 
   для: Trianon   (24.07.2009 в 12:02)
 

Под полем я имею в виде столбец таблицы. Допустим, у меня в таблице поле(столбец) name с названиями и поле discr с описанием. Я хочу к описаниям добавить так же и названия, те чтобы в поле discr было и описание, и через запятую название

  Ответить  
 
 автор: Trianon   (24.07.2009 в 12:13)   письмо автору
 
   для: Tael   (24.07.2009 в 12:10)
 

SET `discr` = CONCAT(`name`, ',', `discr`)


Но значение всё равно будет одно.

  Ответить  
 
 автор: Tael   (24.07.2009 в 12:26)   письмо автору
 
   для: Trianon   (24.07.2009 в 12:13)
 

ага, спасибо, мне и нужно чтобы было одно, но состояло из обоих значений )

  Ответить  
 
 автор: а-я   (24.07.2009 в 12:09)   письмо автору
 
   для: Tael   (23.07.2009 в 17:41)
 

наверно, что-то в этом роде:

UPDATE `mytable` SET `field` = CONCAT(`field`, `field2`) WHERE ...

или для чисел
UPDATE `mytable` SET `field` = `field` + `field2`  WHERE ...

  Ответить  
 
 автор: Trianon   (24.07.2009 в 12:11)   письмо автору
 
   для: а-я   (24.07.2009 в 12:09)
 

id field field2
 1    5      3 

  Ответить  
 
 автор: а-я   (24.07.2009 в 12:16)   письмо автору
 
   для: Trianon   (24.07.2009 в 12:11)
 

о числах вспомнил поздно)

  Ответить  
 
 автор: Tael   (24.07.2009 в 12:25)   письмо автору
 
   для: а-я   (24.07.2009 в 12:09)
 

ага, спасибо, получилось ) я все пыталась сделать через insert
А еще вопрос, мне нужно сделать тоже самое, но теперь уже добавить столбец из другой таблицы, и в той и другой таблице есть идентичные столбцы name. во второй таблице каждому name соответствует, скажем, price, я хочу эти значения добавить в первую таблицу в discr

  Ответить  
 
 автор: Trianon   (24.07.2009 в 12:27)   письмо автору
 
   для: Tael   (24.07.2009 в 12:25)
 

конкретный пример?
вот как у меня в (24.07.2009 в 12:11)

  Ответить  
 
 автор: Tael   (24.07.2009 в 12:31)   письмо автору
 
   для: Trianon   (24.07.2009 в 12:27)
 

Первая таблица
name discr
собака животное

Вторая таблица
name1 first name
собака Шарик

Мне нужно, что бы первая таблица выглядела так:
name discr
собака животное, Шарик

  Ответить  
 
 автор: Trianon   (24.07.2009 в 12:35)   письмо автору
 
   для: Tael   (24.07.2009 в 12:31)
 

Либо firstname либо во второй таблице я вижу целых три поля и всего два значения.
UPDATE 
    t1 JOIN  t2 ON t1.name = t2.name1
  SET t1.discr = CONCAT(t1.discr, ', ', t2.firstname) 


PS
Описание, по англ. description

  Ответить  
 
 автор: Tael   (24.07.2009 в 12:36)   письмо автору
 
   для: Trianon   (24.07.2009 в 12:35)
 

firstname (одно поле)

  Ответить  
 
 автор: Tael   (24.07.2009 в 13:27)   письмо автору
 
   для: Tael   (24.07.2009 в 12:36)
 

большое спасибо!!

  Ответить  
 
 автор: а-я   (24.07.2009 в 12:35)   письмо автору
 
   для: Tael   (24.07.2009 в 12:31)
 

наверно так:

UPDATE 
`tbl1` a, `tbl2` b 
SET 
 a.`discr` = CONCAT(a.`discr`, ', ',b.`price`) 
WHERE
 a.`name` = b.`name`

  Ответить  
 
 автор: Tael   (24.07.2009 в 13:27)   письмо автору
 
   для: а-я   (24.07.2009 в 12:35)
 

большое спасибо, вроде получилось )

  Ответить  
 
 автор: Trianon   (24.07.2009 в 12:29)   письмо автору
 
   для: Tael   (24.07.2009 в 12:25)
 

вообще-то подобными действиями Вы искажаете данные.
Склеить их куда проще, чем распилить.
Соответственно, добраться до оригинального описания будет потом крайне трудно.

  Ответить  
 
 автор: Tael   (24.07.2009 в 12:34)   письмо автору
 
   для: Trianon   (24.07.2009 в 12:29)
 

да, я понимаю, но надеюсь, не понадобится потом разрывать)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования