【问题标题】:Convert ASCII values to string将 ASCII 值转换为字符串
【发布时间】:2015-02-19 11:23:38
【问题描述】:

我有一个表,其中 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”函数?

【问题讨论】:

标签: mysql sql


【解决方案1】:

您可以使用SUBSTRING_INDEX()将两个字符串分开,然后用CHAR()进行转换

SELECT CHAR(SUBSTRING_INDEX('73, 116', ',', 1)) --I
SELECT CHAR(SUBSTRING_INDEX('73, 116', ',', -1)) --t

【讨论】:

  • 在一个单列单元格中有几个这样的值。例如,我只展示了 2 个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 2013-09-27
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
相关资源
最近更新 更多