как склеить 2 столбца в таблице в 1 mysql

201
16 сентября 2018, 08:30

Имеется Таблица My_TABLE, поля street(LONGTEXT),house(LONGTEXT), пытаюсь в этой ж таблице создать столбец address на основе 2х вышеперечисленных. Но не выходит . Запрос такой,

INSERT INTO MY_TABLE (address)
SELECT CONCAT(street, ' ', house) FROM MY_TABLE;

Подскажите пожалуйста что не так

Answer 1

Ошибка в том, что Вы ВСТАВЛЯЕТЕ данные. Т.е. в дополнение к существующей записи с имеющимися street и house и пустым address хотите вставить новую запись с пустыми street и house и заполненным address.

Вам же нужно в существующей записи изменить пустое address на созданное из имеющихся street и house. Вставка нового значения в одно из полей существующей записи - это обновление записи, а не вставка. И запрос будет

UPDATE MY_TABLE 
SET address = CONCAT(street, ' ', house);

Однако этот подход по сути своей ошибочен (за исключением случая, когда впоследствии поле address может подвергнуться корректировке без изменения street/house или наоборот). Если address ВСЕГДА будет соответствовать street/house - надо вообще исключить поле address из структуры таблицы, и получать его значение непосредственно в запросе, в котором оно понадобилось.

PS. Если же поле address должно появиться в таблице, а сейчас его там нет, то его сначала надо создать. Запросом

ALTER TABLE my_table
ADD COLUMN address LONGTEXT;

и только потом обновлять его значение показанным выше запросом.

READ ALSO
Ruby on rails Проблема с установкой гема mysql2

Ruby on rails Проблема с установкой гема mysql2

Выдает вот такую ошибку :

217
Кроссбраузерность HTML

Кроссбраузерность HTML

Делаю сайт, у меня в браузере было все ок, но когда я решил добавить блок с 4 картинками (код приложил) в Яндекс Браузере и IE они отображаются...

264
Нужно ли использовать Modernizr

Нужно ли использовать Modernizr

Раньше при верстке сайта я использовал Modernizr для поддержки старых версией браузеровПоследное время заметил глюки

267