在mysql中,如果我做了类似
的事情round((amount * '0.75'),2)
似乎工作得很好,就像没有0.75的单引号一样。 mysql如何处理这个有什么不同吗?
答案 0 :(得分:0)
希望结束此问题,这是一个解释表达式评估中类型转换的链接:https://dev.mysql.com/doc/refman/5.5/en/type-conversion.html
当运算符与不同类型的操作数一起使用时,请键入 发生转换以使操作数兼容。一些转换 隐含地发生。例如,MySQL会自动将数字转换为 必要的字符串,反之亦然。
@Cacheable("books")
@RequestMapping(method = RequestMethod.GET)
public String list(Model model) {
System.out.println("Retrieving products");
model.addAttribute("products", productDao.list());
return "products/list";
}
在您的情况下,MySQL会看到算术并对表达式中包含的任何字符串执行隐式转换。将字符串转换为数字会被无意中听到,但它可以忽略不计。我的偏好是明确地输入一个数字而不是引用它。这种方法帮助我提高了代码清晰度和可维护性。