SQL子字符串替换

时间:2012-09-12 14:48:26

标签: sql replace heidisql

我正在使用HeidiSql,我有一个包含~1000个URL的数据库。例如:

index.php?option=com_flexicontent&view=items&cid=283&id=33
index.php?option=com_flexicontent&view=items&cid=421&id=4411
index.php?option=com_flexicontent&view=items&cid=415&id=4375

我要做的是将cid=替换为408到477之间的值cid=403

我制作了这样的SQL脚本:

UPDATE jos_menu
SET link = REPLACE(link, "cid=411", 'cid=403')

但如何在不制作70 cid=的情况下将REPLACE值408更改为477?

2 个答案:

答案 0 :(得分:1)

我无法测试这个,但试试这个

UPDATE jos_menu
SET link = REPLACE(link, 'cid=' + SUBSTRING(@str, CHARINDEX( 'cid=', @str) + 4, 3), 'cid=403')
WHERE Cast(SUBSTRING(@str, CHARINDEX( 'cid=', @str) + 4, 3) as Int) > 407 And Cast(SUBSTRING(@str, CHARINDEX( 'cid=', @str) + 4, 3) as Int) < 478

答案 1 :(得分:0)

在phpmyadmin中备份表或数据库,并将其另存为.cvs文件。使用excel进行替换。然后再将其保存为.cvs文件,并将其导入数据库。