我有以下sql查询:
select date, apptemp from weather where apptemp = '20.1';
Empty set (0.05 sec)
如果我再跑:
select date, apptemp from weather where apptemp like '%20.1';
+---------------------+---------+
| date | apptemp |
+---------------------+---------+
| 2014-09-24 15:18:43 | 20.1 |
| 2014-09-24 16:23:41 | 20.1 |
| 2014-09-25 14:08:57 | 20.1 |
+---------------------+---------+
我认为可能是因为数字前面有空格,但' 20.1'
或' 20.1'
也不会产生结果。
我怎样才能看到20.1前面的角色是什么?
更新:谢谢 - 我已经尝试过HEX了:
mysql> SELECT date, apptemp, HEX(apptemp) FROM weather;
是吗?
+---------------------+---------+--------------+
| date | apptemp | HEX(apptemp) |
+---------------------+---------+--------------+
| 2014-09-25 14:19:04 | 21.4 | 15 |
| 2014-09-25 14:24:02 | 21.3 | 15 |
| 2014-09-25 14:28:57 | 20.8 | 15 |
| 2014-09-25 14:34:02 | 21.4 | 15 |
| 2014-09-25 14:38:59 | 21.2 | 15 |
+---------------------+---------+--------------+
更新2:
似乎与之相关。 - 如果我这样做
select date, apptemp from weather where apptemp = '20';
返回正确的数据。
" 20.1" - 才不是。
答案 0 :(得分:2)
我使用HEX
函数:
SELECT HEX(apptemp) FROM weather;
这将以十六进制显示列的值。要查找的键十六进制值为00
(ASCII NUL),09
(制表符)和20
(空格),但有许多其他“不可见”值。
查询列及其十六进制值可能更容易,因此您可以看到该值的普通和极客版本:
SELECT apptemp, HEX(apptemp) FROM weather;
答案 1 :(得分:0)