2017-04-20 49 views
0

我需要根據其表中已存在的ROM代碼將一列新的URL插入項目表中。MYSQL - 使用默認字符串concat與現有列中的數據添加新列

我的網址需要具有以下格式 /media/marquees/{ROM}.png

| rom |   marquee_url   | 
|---------------------------------------| 
| abcd | /media/marquees/abcd.png  | 
| efg | /media/marquees/efg.png  | 

我相當有信心,有

+1

您只需要更新marquee_url一次,或者希望你有一個自動更新。然後你可以插入一個虛擬列。 –

回答

0

您可以使用生成_rom沒有NULL值5.7列。

> CREATE TABLE test_table (rom varchar(20), marquee_url varchar(30) AS (concat("/media/marquees/",rom,".png"))); 

> insert into test_table (rom) values ('abcd'), ('efg'); 

> select * from test_table ; 
+------+--------------------------+ 
| rom | marquee_url    | 
+------+--------------------------+ 
| abcd | /media/marquees/abcd.png | 
| efg | /media/marquees/efg.png | 
+------+--------------------------+` 

欲瞭解更多信息生成列是如何工作的,請參考此鏈接https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html

+0

謝謝,我要升級到5.7並走這條路 –

1

用戶concatmarquee_url field你得到的結果:

INSERT INTO table_name (room, marquee_url) VALUES (value1, CONCAT('/media/marquees/',value1))