我有一个表,其中message是varchar列类型。
mysql> select * from todel;
+---------+
| message |
+---------+
| 73, 116 |
+---------+
1 row in set (0.00 sec)
我无法将ASCII值转换为字符串。
mysql> select char(message) from todel;
+---------------+
| char(message) |
+---------------+
| I |
+---------------+
1 row in set, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+----------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect INTEGER value: '73, 116' |
+---------+------+----------------------------------------------+
1 row in set (0.00 sec)
如果我直接使用char函数,那么它按预期工作:
mysql> select char(73, 116);
+---------------+
| char(73, 116) |
+---------------+
| It |
+---------------+
1 row in set (0.00 sec)
如何在从表中选择varchar数据时使用“char”函数?
答案 0 :(得分:1)
您可以使用SUBSTRING_INDEX()
分隔两个字符串,然后使用CHAR()
转换它们
SELECT CHAR(SUBSTRING_INDEX('73, 116', ',', 1)) --I
SELECT CHAR(SUBSTRING_INDEX('73, 116', ',', -1)) --t