使用INSERT(s1,x,len,s2)函数:
函数说明:字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
菜鸟教程:MySQL 函数 | 菜鸟教程
以下示例:consignee收件人名字第二个字改为*号,收件人手机号中间4位改为****
SELECT
o.id,
o.order_id,
o.shop_id,
o.owner_id,
INSERT ( CONCAT( o.consignee ), 2, 1, '*' ) AS consignee,
INSERT ( CONCAT( o.consignee_telephone ), 4, 4, '****' ) AS consignee_telephone,
o.consignee_province,
o.consignee_city,
o.consignee_town,
o.consignee_address,
o.express_code
from bd_order o
拓展:以下SQL为查询订单信息并将4PL-ZTO的订单收件人名字和手机号打码
SELECT
o.id,
o.order_no,
o.enterprise_id,
o.shop_id,
o.owner_id,
o.state,
o.create_time,
IF ( o.pl_model = "4PL" AND o.express_code = "ZTO", INSERT ( CONCAT( o.consignee ), 2, 1, '*' ), o.consignee ) AS consignee,
IF ( o.pl_model = "4PL" AND o.express_code = "ZTO", INSERT ( CONCAT( o.consignee_telephone ), 4, 4, '****' ), o.consignee_telephone ) AS consignee_telephone,
o.consignee_province,
o.consignee_city,
o.consignee_town,
o.consignee_address,
o.logistics_no,
o.logistics_name,
o.logistics_code,
o.gross_weight,
o.express_code
from bd_order o
where o.state=#{state}
and o.return_status in (100,200)