2015-02-19 5 views
3

У меня есть таблица, где message - тип столбца varchar.Преобразовать значения ASCII в строку

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) 

Если я использую обугленную функцию непосредственно, то он работает, как ожидалось:

mysql> select char(73, 116); 
+---------------+ 
| char(73, 116) | 
+---------------+ 
| It   | 
+---------------+ 
1 row in set (0.00 sec) 

Как использовать функцию «обугленную» при выборе данных VARCHAR из таблицы?

+4

Выбор: версия пытается сделать полукокса ('73, 116'). – jarlh

+1

Я думаю, вам нужно разбить его и бросить на int каким-то образом. Возможно, это может помочь http://stackoverflow.com/questions/11835155/mysql-split-comma-separated-string-into-temp-table – jurgemaister

ответ

1

Вы можете использовать SUBSTRING_INDEX(), чтобы отделить две строки, а затем преобразовать их CHAR()

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

В одной ячейке столбца имеется несколько таких значений. В качестве примера я показал только 2. – shantanuo

Смежные вопросы