MYSQL如何替换部分字符串
字段里存着网址,类似这样的baidu/32位MD5值/baidu_xxxxxxx......之后是长度不确定的字符串由于xxxxx...那里长度和值都是不确定的所以不知道...
字段里存着网址,类似这样的
baidu/32位MD5值/baidu_xxxxxxx......之后是长度不确定的字符串
由于xxxxx...那里长度和值都是不确定的所以不知道如何替换
如何全部替换为下面这样,之后的那些字符不管是什么全都不要.
baidu/32位MD5值
最好使用SQL语句就能解决的,实在解决不行再借助其他程序 展开
baidu/32位MD5值/baidu_xxxxxxx......之后是长度不确定的字符串
由于xxxxx...那里长度和值都是不确定的所以不知道如何替换
如何全部替换为下面这样,之后的那些字符不管是什么全都不要.
baidu/32位MD5值
最好使用SQL语句就能解决的,实在解决不行再借助其他程序 展开
3个回答
展开全部
如果是想查询话:
select substr(该字段名,1,(instr(该字段名,'/',1,2)-1)) from 表名;
如果是想直接改变数据:
update 表名 set 字段名=substr(该字段名,1,(instr(该字段名,'/',1,2)-1));
语句是截取第2个'/'之前的字符串
如果想更长一些可以改变下面n的值为输出到第n个'/'之前的全部字符串
update 表名 set 字段名=substr(该字段名,1,(instr(该字段名,'/',1,n)-1));
select substr(该字段名,1,(instr(该字段名,'/',1,2)-1)) from 表名;
如果是想直接改变数据:
update 表名 set 字段名=substr(该字段名,1,(instr(该字段名,'/',1,2)-1));
语句是截取第2个'/'之前的字符串
如果想更长一些可以改变下面n的值为输出到第n个'/'之前的全部字符串
update 表名 set 字段名=substr(该字段名,1,(instr(该字段名,'/',1,n)-1));
展开全部
找了半天也没有找到可以实现这个功能的函数, 最后解决办法是:导入数据表,用awk处理里,再插入一个新表(数据结构一样) mysql>select * from 表1 INTO OUTFILE 'b.txt'; awk -F'/' '{print $1"/"$2}' b.txt >a.txt mysql>create table 表2 like表1; mysql>load data infile 'a.txt' into table 表2; 同时也坐着用函数或其它巧妙的办法来解决。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mysql> select host,user from user where user='user';
+-----------------------+----------+
| host | user |
+-----------------------+----------+
| localhost.localdomain | testuser |
+-----------------------+----------+
update字段host的内容,把"main"改成"slave",用REPLACE
mysql> update user set host=REPLACE(host,'main','slave') where user='user';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host,user from user where user='user';
+------------------------+----------+
| host | user |
+------------------------+----------+
| localhost.localdoslave | testuser |
+------------------------+----------+
+-----------------------+----------+
| host | user |
+-----------------------+----------+
| localhost.localdomain | testuser |
+-----------------------+----------+
update字段host的内容,把"main"改成"slave",用REPLACE
mysql> update user set host=REPLACE(host,'main','slave') where user='user';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host,user from user where user='user';
+------------------------+----------+
| host | user |
+------------------------+----------+
| localhost.localdoslave | testuser |
+------------------------+----------+
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询