mysql实现向某个字段前或后添加字符

目录
  • mysql向某个字段前或后添加字符
  • mysql更新字段时,在末尾添加新字符串
    • 使用concat函数
    • 使用IFNULL函数
    • 补充其他concat的函数

mysql向某个字段前或后添加字符

使用concat 方法即可。可以先尝试使用时请带上where id=** 测试,否则将是全表修改哦。

UPDATE optional_product
SET cate_path = concat('|',cate_path,'|')

效果:

如果需要批量替换某个字段,请参考本人另一篇文章:

Mysql中批量替换某个字段的值:replace

mysql更新字段时,在末尾添加新字符串

使用MySQL更新数据时,有时候会遇到在一个字段后添加新的字符串。

比如:

在表AAtable中,让Mike的食物添加 banana。可能会想到这样操作。

update AAtable set food += 'banana' where name = 'Mike';

但是实际上,这样写在Mysql中会报错。

使用concat函数

在MySQL中不能用+号,可以使用concat()函数连接两个字符串。

update AAtable set food = concat(food,'banana') where name = 'Mike';

这样能正确在末尾添加字符串。

但是,如果food原本是空的(NULL),那么这条语句就更新不了。

CONCAT(str1,str2,…)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

使用IFNULL函数

NULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。

IFNULL(expression, alt_value)

如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。

于是将命令改成:

update AAtable set food = concat(IFNULL(food,''),'banana') where name = 'Mike';

就可以实现在字段末尾添加字符串,字段为空时也可以添加。

补充其他concat的函数

CONCAT_WS(separator,str1,str2,…)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

注意:

如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

repeat(str, times)

用来复制字符串, str 表示要复制的字符串,times表示复制的份数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • mysql中向表中某字段追加字符串的方法

    Update `表名` SET title = CONCAT(title,'MV') where articleid=3487 and title not like '%v'

  • 在mysql数据库原有字段后增加新内容

    复制代码 代码如下: update table set user=concat(user,$user) where xx=xxx;

  • mysql安装后添加gbk字符集的方法

    1.查看当前字符集: 复制代码 代码如下: SHOW CHARACTER SET; 2.删除mysql相关目录 复制代码 代码如下: rm -rf /usr/local/mysql/*     安装目录rm -rf /var/lib/mysql/mysql   数据库目录 3.重新编译 复制代码 代码如下: ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql --with-c

  • 浅谈mysql中concat函数,mysql在字段前/后增加字符串

    MySQL中concat函数 使用方法: CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串. 一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQ

  • mysql实现向某个字段前或后添加字符

    目录 mysql向某个字段前或后添加字符 mysql更新字段时,在末尾添加新字符串 使用concat函数 使用IFNULL函数 补充其他concat的函数 mysql向某个字段前或后添加字符 使用concat 方法即可.可以先尝试使用时请带上where id=** 测试,否则将是全表修改哦. UPDATE optional_product SET cate_path = concat('|',cate_path,'|') 效果: 如果需要批量替换某个字段,请参考本人另一篇文章: Mysql中批量

  • MySQL数据类型和常用字段属性总结

    前言 好比C++中,定义int类型需要多少字节,定义double类型需要多少字节一样,MySQL对表每个列中的数据也会实行严格控制,这是数据驱动应用程序成功的关键.M前言 好比C++中,定义int类型需要多少字节,定义double类型需要多少字节一样,MySQL对表每个列中的数据也会实行严格控制,这是数据驱动应用程序成功的关键.MySQL提供了一组可以赋给表中各个列的数据类型,每个类型都强制数据满足为该数据类型预先确定的一组规则,例如大小.类型及格式. 这里先总结数据类型.MySQL中的数据类型

  • mysql查询昨天 一周前 一月前 一年前的数据

    mysql 昨天 一周前 一月前 一年前的数据 这里主要用到了DATE_SUB, 参考如下 复制代码 代码如下: SELECT * FROM yh_contentwhere inputtime>DATE_SUB(CURDATE(), INTERVAL 1 DAY)where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 WEEK)where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)where inp

  • MySQL中查询当前时间间隔前1天的数据

    1.背景 实际项目中我们都会遇到分布式定时任务执行的情况,有时定时任务执行的时候如果查询的数据量比较大时,我们会选择执行时间间隔几天前的数据筛选后进行执行. 避免执行全量的数据导致内存占用过大或执行时间过长导致OOM等问题. 这里我们就会用到SQL来过滤当前时间间隔1天或几天的查询. 1.1.查询SQL语句 这里用到一张talk_course表作为查询sql语句的执行表单,表的字段如下: 表中大致有如下几条测试数据: 查询距离当前执行时间前一天的SQL语句如下: # 查询距离当前时间前1天的数据

  • MySQL怎么给字符串字段加索引

    假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: create table SUser(  ID bigint unsigned primary key,  email varchar(64),  ...  )engine=innodb; 由于要使用邮箱登录,所以业务代码中一定会出现类似于这样的语句: select f1, f2 from SUser where email='xxx'; 如果 email 这个字段上没有索引,那么这个语句就只能做全表扫描. 1)那我可以在邮箱地址这个

  • MySQL对JSON类型字段数据进行提取和查询的实现

    目录 前言 1. 问题现象 2. 解决方案 3. JSON数据查询 3.1 一般基础查询操作 3.2 一般函数查询操作 4. JSON数据新增更新删除 前言 昨天上线后通过系统报警发现了一个bug,于是紧急进行了回滚操作,但是期间有用户下单,数据产生了影响,因此需要排查影响了哪些订单,并对数据进行修复. 1. 问题现象 由于bug导致了订单表的customer_extra_info字段的hasFreightInsurance误更新成了“是”,因此需要查询回滚前一共有多少被误更新为“是”的订单,如

  • Mysql中如何删除某个字段的最后四个字符

    目录 如何删除某个字段的最后四个字符 1.第一种方法 2.第二种方法 剔除特定字符后面的所有内容 如何删除某个字段的最后四个字符 我们有的时候在进行数据操作的时候,会遇到一些情况,例如有的时候,某个字段会多出现多余的东西. 比如城市code 10100000000.这个时候,我只想显示八位.应该怎么办呢.这个时候,就需要我们能够删除某个字段的最后四位. 1.第一种方法 update 表名 set 字段名=SUBSTRING(字段名,1,LENGTH(字段名)-4) 这种方式有一些问题,会把只要不

  • MYSQL替换时间(年月日)字段时分秒不变实例解析

    写法1: update sas_order_supply_month_pay set RECEIVE_TIME=REPLACE(RECEIVE_TIME,DATE_FORMAT(RECEIVE_TIME,'%Y-%m-%d'),(select PERIOD_END from sas_task_supply_month_pay_period where belong='1729' and CREATE_TIME like '%2017-07-12%')) where ORDER_CODE='PO2

  • mysql中的保留字段产生的问题

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versio····这句话对于咱们并不陌生,无非就是多了","之类的问题.但是你如果无意之中添加了一个mysql中的保留字段作为数据库中存贮的字段名,悲剧就这样发生了. 前几天因为功能的临时变更,需要给数据表添加一个字段用来区别导入的批次,我就在mysql中添加了group字段,没想到我的噩梦就此展开·

随机推荐