2013-02-22 66 views
0

希望是一個簡單的,可能是我錯過了一些愚蠢的東西。 爲什麼下面的語句沒有產生任何結果:爲什麼在此SQL語句中使用@variable不會產生結果?

SET @old_sites_path = 'sites/mysite.co.uk/', @sites_path = 'sites/default/' 

-- Update the content within blocks 
UPDATE `boxes` 
SET `body` = REPLACE(`body`, @old_sites_path+'files', @sites_path+'files'); 

但是,如果我只是替代變量,我得到的結果呢?

-- Update the content within blocks 
UPDATE `boxes` 
SET `body` = REPLACE(`body`, 'sites/mysite.co.uk/files', 'sites/default/files'); 

只爲背景,這是一個更大的腳本,可以幫助我管理的Drupal數據庫的部署的一部分。

感謝:-)

回答

1

運行這得到一條線索:

SELECT 'sites/mysite.co.uk/' + 'files' 

然後看看CONCAT()

+0

是的,我剛剛跑過這個'SELECT @ old_sites_path +'文件';',它返回0,然後我想起我正在將MSSQL混合到我的腳本中。頑皮調皮。非常感謝:-) – 2013-02-22 11:33:26

+2

神祕的答案,但是如果OP有能力解決這個問題的話,那麼這個答案就足夠了。 (對於那些沒有得到它的人:MySQL中的'+'符號用於添加數字 - 原始海報需要使用CONCAT函數來連接字符串。) – 2013-02-22 12:53:17

相關問題