如何替换列的某个值。例如,我有三行值在表格中:
id_tweet: 1
status_user: RT @username1: success rta: P
id_tweet: 2
status_user: RT @username2: happy rta: D
id_tweet: 3
status_user: amen
在上述三条记录中,我希望替换或删除“状态\用户”列中的转发文本,以便:
after replace:
id_tweet: 1
status_user: success rta: P
id_tweet: 2
status_user: happy rtx: D
id_tweet: 3
status_user: amen
但我有限制。我想我可以在mysql上使用replace函数查询,如下所示:
UPDATE tes_tbl_status
SET status_user = (SELECT REPLACE (status_user, '?', '') FROM
tes_tbl_status WHERE status_user LIKE 'RT%:%')
WHERE status_user LIKE 'RT%:%';
信息:'?'=rt@…:
通过将status\u user列中的某个值替换为空字符串值来进行上述查询,但是我还不知道如何检索文本值
rt@…:
将替换为空字符串。有人对我的问题有什么想法或解决办法吗?
1条答案
按热度按时间bzzcjhmw1#
如果你想移除
RT @...:
零件,零件SUBSTRING_INDEX
,CONCAT
以及REPLACE
mysql函数正在那里为您提供帮助。使用SUBSTRING_INDEX
你可以提取RT @...
可以用冒号连接的子字符串(:
)并将此结果应用于REPLACE
作为from_str
要用空字符串替换的参数。下面是代码,您需要更新什么:
结果:
注意
TRIM
我用来移除前导和尾随空格(如果存在的话)。请看这里的sqlfiddle演示。
ddl地址:
还有一个不错的mysql udf库(lib\u mysqludf\u preg),它可以为您的mysql配备pcre模式匹配功能。