mysql联合更改值
我想在查询结果中添加列名 与: 我得到mysql联合更改值,mysql,union-all,Mysql,Union All,我想在查询结果中添加列名 与: 我得到 +---------+ | MYVALUE | +---------+ | 0.70 | +---------+ +--------------+ | value | +--------------+ | value | | 0.6999999881 | +--------------+ 与 我得到 +---------+ | MYVALUE | +---------+ | 0.70 | +---------+
+---------+
| MYVALUE |
+---------+
| 0.70 |
+---------+
+--------------+
| value |
+--------------+
| value |
| 0.6999999881 |
+--------------+
与
我得到
+---------+
| MYVALUE |
+---------+
| 0.70 |
+---------+
+--------------+
| value |
+--------------+
| value |
| 0.6999999881 |
+--------------+
我确信0.70是正确的值
MYVALUE是一个浮点值
为什么会改变?我怎样才能得到好的价值
编辑:这确实是一个浮点/字符串问题。我解决了以下问题:
select 'value' union all select CAST(MYVALUE AS CHAR)from MYTABBLE;
“值”
不是数字,而是字符串。还有一个不能转换成数字的。我很惊讶MySQL居然允许运行这个语句。在联合体中
每个联合体部件的每一列必须具有完全相同的数据类型。Postgres和Oracle将干脆拒绝运行此功能。您正在混合字符串和数字。难怪你会得到一些奇怪的值(众所周知MySQL会做很多奇怪的转换以避免任何代价出现错误消息)哦,顺便说一句:你很可能不想要一个float
列: