1, REPLACE 使用
-UPDATE tbl_name SET field_name = REPLACE(field_name,old_str,new_str) WHERE conditions;
2, 查询某个模式之前或之后的字段 SUBSTRING_INDEX()
- 查询语法:
SUBSTRING_INDEX(str,delim,count)
- 查询之前:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 2);
- 结果:
Cats,Dogs
- 查询之后:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', -2);
- 结果:
Dogs,Rabbits
- 具体应用:
- 数据库中某列为以下模式:
this is a tes===you are right###are you ok?
- 需求只保留“are you ok?”,并在前面添加“what's your problem##”;
- 先将结果查询为临时表:
SELECT question, CONCAT("what's your problem##",SUBSTRING_INDEX(question,'###',-1)) FROM internet
; - 然后,将本表和临时表同时查询,替换。
- 数据库中某列为以下模式:
参考资料: