Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка в конкатенации / 8 сообщений из 8, страница 1 из 1
30.04.2014, 21:37:24
    #38630626
Timemanager
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
Подскажите, пожалуйста!

В табличку:
Код: sql
1.
2.
3.
TBL1 (
id int,
name varchar(50));



Вставляются данные выборкой из другой таблицы

Код: sql
1.
insert into tbl1 (name) select concat(name,' цифирка=',num) from tbl2;



Вторая табличка, откуда данные тащатся:
Код: sql
1.
2.
3.
TBL1 (
name varchar(50),
num int);



Если в таблице с данными поле второе число, то в первую таблицу данные вставляются не в кириллице, а в хрен знает какой кодировке и выводятся, соответственно также.

Обе таблицы с совершенно одинаковой кодировкой.

Если вставлять обычным способом
Код: sql
1.
insert into tbl1 (name) values ('абаракадабра 12345');

то, естественно все в кириллице.

Подскажите! Как либо число принудительно перевести в строку, либо чо еще. Что делать ума не приложу.

Спасибо!
...
Рейтинг: 0 / 0
30.04.2014, 21:42:16
    #38630629
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
вот это не поможет? FAQ: Проблемы с кодировкой в MySQL версий 4.1+
или еще что-нить похожее из FAQ...
...
Рейтинг: 0 / 0
30.04.2014, 22:02:56
    #38630643
Timemanager
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
Cygapb-007,

Дык в сеслекте из обеих таблиц выводит все верно. Если нет конкатенации строки с числом. Причем, если делаешь в инсерте
Код: sql
1.
insert into tbl1 (name) values (concat('вася',123));

то всё в норме. Если делать инсерт строки
Код: sql
1.
insert into tbl1 (name) select name from tbl2;

то тоже нормально.
...
Рейтинг: 0 / 0
30.04.2014, 22:27:53
    #38630663
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
Timemanager ,

а если через concat_ws('',name,' цифирка=',num) ?
...
Рейтинг: 0 / 0
30.04.2014, 22:57:11
    #38630695
Timemanager
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
Cygapb-007,

тоже самое...

Ничо не понимаю.
...
Рейтинг: 0 / 0
30.04.2014, 22:59:29
    #38630698
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
TimemanagerНичо не понимаю.аналогично.

сорь:)
...
Рейтинг: 0 / 0
30.04.2014, 23:14:07
    #38630703
Timemanager
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
Cygapb-007,

Спасибо за ответ :)
...
Рейтинг: 0 / 0
30.04.2014, 23:39:19
    #38630718
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в конкатенации
Не уверен, но, похоже, проблема где-то в окрестностях этого:
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_concat If the arguments include any binary strings, the result is a binary string. A numeric argument is converted to its equivalent string form. This is a nonbinary string as of MySQL 5.5.3. Before 5.5.3, it is a binary string; to to avoid that and produce a nonbinary string, you can use an explicit type cast, as in this example:

SELECT CONCAT(CAST(int_col AS CHAR), char_col);

В любом случае, лучше не надеяться на неявное преобразование типов.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка в конкатенации / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]