Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите как записать массив в базу мусол. (https://javascript.ru/forum/misc/61217-podskazhite-kak-zapisat-massiv-v-bazu-musol.html)

wadim 09.02.2016 07:08

Подскажите как записать массив в базу мусол.
 
Подскажите как записать массив в базу мусол. Одной строчкой. Спс.

laimas 09.02.2016 11:21

А что за база такая "мусол"?

wadim 09.02.2016 11:27

mysql

laimas 09.02.2016 12:18

Оригинальная транскрипция. :)

Если записать массив как строку в одно поле базы, то естественно его нужно преобразовать в строку, либо сериализованную, либо json. Но прежде чем такое делать надо сильно задуматься нужно ли это делать. Если этот массив лежит себе в базе как строка, в нем не нужно делать поиска, выборки, изменений, то хрен с ним, пусть строка. В противном случае, вы сами себе геморрой определите.

wadim 09.02.2016 15:33

Запись ведется в такую таблицу:

id x y

1 22 45

2 13 11

При этом нужно все значения перезаписывать, то есть сперва получаем массив с этой таблицы(с этим нет проблем), после меняем значения массива(тож без проблем), ну а после нужно писать этот массив в таблицу базы.

laimas 09.02.2016 16:00

Значит вопрос был задан некорректно. Нет в MySQL массивов, полученные из него данные да, будут представлять массив, хотя можно получить их и в виде объекта.
Я так понимаю, что планировалось задать вопрос:
- Как одним запросом обновить данные нескольких записей SQL таблицы?

Ответ:
- Строго говоря для UPDATE не существует многострочной записи в том виде, в каком это возможно в INSERT. Но можно сделать многострочную вставку данных с использованием ON DUPLICATE KEY UPDATE. А стандартным способом только в цикле, делая запрос на обновление данных для каждой записи.

PS. Данный форум в основном рассматривает вопросы клиентского программирования. Есть здесь раздел посвященный серверным технологиям, и с такими вопросами нужно в нем обращаться, но так как базы данных, это вопрос серьезный, то еще лучше с подобным обращаться на форумы специализирующиеся по такой тематике, так как коротко об этом не рассказать, а нюансов много.

ruslan_mart 09.02.2016 16:59

wadim, Вы ошиблись разделом.

Изменять данные в таблице можно с помощью конструкции UPDATE. Вот пример процедуры, которая меняет данные.

CREATE DEFINER = 'root'@'localhost'
PROCEDURE myDataBase.myProcedure(IN id INT, IN x INT, IN y INT)
BEGIN
  UPDATE myTable t
  SET `x` = x, `y` = y
  WHERE t.id = id;
END


Запуск:
call myDataBase.myProcedure(2, 10, 20);


Часовой пояс GMT +3, время: 09:59.