mysql 正数批量替换为负数,或向mysql字段内容值中增加追加字符串'-'减号

本文介绍了在MySQL中如何正确地使用SQL语句为数据库表中的字段值追加字符串。对比了REPLACE与CONCAT函数的效果,并给出了有效的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

意思是在数据库中,把一个字段的值,追加字符串,无论在前面还是在后面.

用下面这种方式无效果,不知原因

 

"update `@#_member_account` set money=REPLACE(money,money,'-'+money) where `pay`= '退款'  "

 

 

 

 

 

不过用下面的方法可以,更多介绍请搜索mysql的CONCAT用法

 

"update `@#_member_account` set money=CONCAT('-',money) where `pay`= '退款'  "

 

 

 

 

### Java 字符串中使用减号的注意事项 在 Java 中,字符串本质上是一个对象类型 `String` 的实例。由于字符串本身并不支持直接的算术运算(如加法减法),因此如果尝试对字符串应用减号 `-`,编译器会报错。然而,在某些情况下,可能会遇到涉及字符串和数字混合使用的场景。 #### 1. **字符串与数字之间的隐式转换** 当字符串与其他数据类型(如整数、浮点数)组合时,Java 默认会对这些数据进行拼接处理而非执行算术运算。例如: ```java int num = 5; System.out.println("Result is: " + (num - 3)); // 正确:先计算(num - 3),再拼接到字符串上[^1] ``` 上述代码中 `(num - 3)` 部分会优先完成算术运算,之后将其结果作为字符串的一部分进行拼接。需要注意的是,括号的作用在于明确优先级;如果没有括号,则可能导致意外行为。 #### 2. **错误示例:未定义的行为** 如果不小心省略了必要的括号其他逻辑控制结构,程序可能无法按预期运行。例如: ```java String str = "Value: "; int value = 8; System.out.println(str + value - 3); // 错误:试图将字符串与数字相减 ``` 此代码片段会产生编译错误,因为 Java 不允许直接对字符串施加减法操作。实际上,这里的表达式会被解析为 `((str + value) - 3)`,而 `str + value` 是一个字符串,它不能被用来做进一步的减法运算。 #### 3. **解决方法:显式的类型转换** 为了实现类似的功能,可以考虑通过显式地将其他部分的结果转化为字符串后再进行连接。比如: ```java String result = String.valueOf(8 - 3); System.out.println("Computed Value: " + result); // 输出 Computed Value: 5 ``` 这里利用了 `String.valueOf()` 方法将数型结果转成字符串形式以便于后续的操作。 #### 4. **关于字符编码的影响** 得注意的一点是,虽然字符串整体不支持减法,但如果单独取出其中某个字符并对其进行算术运算则是可行的。这是因为单个字符实际上是基于 Unicode 编码表的一个固定[^2]。例如: ```java char aChar = 'A'; char bChar = 'B'; // 计算两字母间的差 int difference = bChar - aChar; System.out.println(difference); // 输出 1, 表明'B'比'A'大一位 ``` 这种技术可用于简单的加密算法是验证输入的有效性等情况之下。 --- ### 示例代码 下面提供一段完整的例子来演示如何安全有效地运用减号以及相关技巧: ```java public class Main { public static void main(String[] args) { int numberOne = 10; int numberTwo = 7; // 显示基本数学运算后的字符串表示 System.out.println("Difference between numbers: " + (numberOne - numberTwo)); char firstLetter = 'X', secondLetter = 'Y'; // 展现字符间的关系 System.out.println(secondLetter + " minus " + firstLetter + ": " + (secondLetter - firstLetter)); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值