【发布时间】:2014-08-13 19:18:27
【问题描述】:
我在mysql中有一个相当大的表,我需要更改与该列相关的所有记录。
记录是这样的:
/name/nm0000209/?ref_=ttfc_fc_cl_t1,
/name/nm0000151/?ref_=ttfc_fc_cl_t2,
...,
/name/nm0104594/?ref_=ttfc_fc_cl_t10
我想要的是只保留中间的字符串 nm0000209, nm0000151,.... 我知道如何通过 REPLACE 或 Trim 从单词的右侧或左侧删除特定字符, ..,但我的问题是,在这种情况下,字符串第三部分中的字符数不相等(如您所见,当它达到 10 时,我必须从末尾删除 21 个字符而不是 20 个字符,因为这个表包含很多我不知道怎么做的记录。
如果有人能帮助我,我真的很感激,
谢谢
【问题讨论】:
-
你试过更新语句了吗? UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
-
那么,您当前的表在目标字段中有
/name/nm0000209/?ref_=ttfc_fc_cl_t1,您需要清理它并只留下 nm00000209 部分吗?因为我很困惑您引用的字符串是否已经在数据库中或者您尚未解析的请求 -
这可能会有所帮助:“用子字符串填充列”stackoverflow.com/questions/15644317/…
-
@amenadiel 是的,完全正确!我的表中有 /name/nm0000209/?ref_=ttfc_fc_cl_t1,我只需要 nm0000209
标签: mysql replace sql-update trim