2010-01-25 34 views
0

我有下列數據表。如何在MySQL數據中更改圖像/資產/圖像?

CREATE TABLE IF NOT EXISTS `omc_product` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) NOT NULL, 
    `shortdesc` varchar(255) NOT NULL, 
    `longdesc` text NOT NULL, 
    `thumbnail` varchar(255) NOT NULL, 
    `image` varchar(255) NOT NULL, 
    `class` varchar(255) DEFAULT NULL, 
    ... 
    ... 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=121 ; 

-- 
-- Dumping data for table `omc_product` 
-- 

INSERT INTO `omc_product` (`id`, `name`, `shortdesc`, `longdesc`, `thumbnail`, `image`, `class`, `grouping`, `status`, `category_id`, `featured`, `other_feature`, `price`) VALUES 
(1, 'Doggie', 'Cappelen forlag: New Flight', 'Doggie from New flight.', 'images/newflight_doggie_small.jpg', 'images/newflight_doggie_big.jpg', 'new-flight', 'imagebox-new', 'active', 5, '', 'none', 0.00), 
(2, 'Jinnie', 'New flight Jinnie', '', 'images/newflight_jinnie_small.jpg', 'images/newflight_jinnie_big1.jpg', 'new-flight', 'imagebox-new', 'active', 5, '', 'none', 0.00), 
(3, 'Trehus', 'Det hemmelige eventyret: tre hus', '', 'images/trehus_small.jpg', 'images/trehus.jpg', 'det-hemmelige-eventyret', 'imagebox-even', 'active', 5, '', 'none', 0.00), 
(4, 'Anima Halloween', 'Forlaget fag og kultur... 

縮略圖和圖像的所有字段都有圖像/開頭。

現在我需要添加資產/在所有這些圖片/前面。

例如,而不是

'images/newflight_doggie_small.jpg', 'images/newflight_doggie_big.jpg' 

我需要改變,以

'assets/images/newflight_doggie_small.jpg', 'assets/images/newflight_doggie_big.jpg' 

誰能告訴我該怎麼做嗎?

在此先感謝。

回答

1

試試這個:

UPDATE omc_product 
SET image = CONCAT('assets/', image), thumbnail = CONCAT('assets/', thumbnail) 

MySQL UPDATE syntaxMySQL string functions

如果你有做一次以上,以下解決方案更 '安全':

巴比在他的評論中提到,您可以(應該)添加WHERE子句以確保不會更改已經以assets開頭的路徑:

UPDATE omc_product 
SET image = CONCAT('assets/', image), thumbnail = CONCAT('assets/', thumbnail) 
WHERE thumbnail NOT LIKE 'assets%' AND image NOT LIKE 'asset%' 

但這種方式不能添加assets在情況下,或者imagethumbnail它是在一個領域唯一缺少的。

另一種解決辦法是:

UPDATE omc_product 
SET image = IF(image NOT LIKE 'asset%',CONCAT('assets/', image), image), 
thumbnail = IF(thumbnail NOT LIKE 'assets%', CONCAT('assets/', thumbnail), thumbnail) 

但請注意,這個更新你的數據庫中的每一行,即使它並不需要得到更新。

+1

也許WHERE部分是個好主意,以防萬一:'WHERE thumbnail not like'assets%'AND image NOT LIKE'asset%'' – Bobby 2010-01-25 08:07:53