将 ASCII 值转换为字符串

3

我有一张表,其中的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"函数?

4
精选版本试图执行 char('73,116')。 - jarlh
1
我认为你需要将其拆分并以某种方式转换为整数。也许这可以帮助你:https://dev59.com/xmgt5IYBdhLWcg3wwwK- - Jørgen R
1个回答

1
你可以使用 SUBSTRING_INDEX() 函数将两个字符串分开,然后使用 CHAR() 函数进行转换。
SELECT CHAR(SUBSTRING_INDEX('73, 116', ',', 1)) --I
SELECT CHAR(SUBSTRING_INDEX('73, 116', ',', -1)) --t

单个列单元格中有几个这样的值。例如,我只展示了两个。 - shantanuo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接