MySQL/PhpMyAdmin中testlink表newtarget列批量更新需求
MySQL Update Statement for URL Transformation
嗨,针对你这个需求,我整理了一个合适的MySQL UPDATE语句,刚好能解决批量更新newtarget列的问题:
UPDATE testlink SET newtarget = CONCAT('https://domain1.com/search/?q=', SUBSTRING(url, LENGTH('https://domain1.com/') + 1)) WHERE url LIKE 'https://domain1.com/%';
关键部分说明:
SUBSTRING(url, LENGTH('https://domain1.com/') + 1):这个函数会精准截取url里https://domain1.com/之后的内容,比如输入https://domain1.com/topic1,就会得到topic1。CONCAT(...):把固定的搜索前缀和截取到的主题字符串拼接起来,生成你需要的目标URL。WHERE子句:只筛选以https://domain1.com/开头的记录,防止误操作其他不符合格式的URL。
必做的测试步骤:
在执行UPDATE之前,一定要先跑下面的SELECT语句验证结果是否符合预期,避免数据出错:
SELECT url, CONCAT('https://domain1.com/search/?q=', SUBSTRING(url, LENGTH('https://domain1.com/') + 1)) AS expected_newtarget FROM testlink WHERE url LIKE 'https://domain1.com/%';
确认所有预期结果都正确后,再执行UPDATE就可以了。6000条记录的量在MySQL/PhpMyAdmin里执行完全没问题,速度很快。
内容的提问来源于stack exchange,提问作者Meg
相关产品推荐
相关产品推荐

