У меня есть запрос ниже, и мне нужно передать его id
наvarchar
схема
create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');
Что я пробовал
select CAST(id as VARCHAR(50)) as col1 from t9;
select CONVERT(VARCHAR(50),id) as colI1 from t9;
но они не работают. Пожалуйста, предложите.
Ответы:
Вам понадобится
cast
илиconvert
какCHAR
тип данных, нетvarchar
типа данных, в который вы можете преобразовывать / преобразовывать данные:См. Следующий SQL в действии на SQL Fiddle :
Помимо того факта, что вы пытались преобразовать в неправильный тип данных, синтаксис, который вы использовали,
convert
был неправильным.convert
Функция использует следующее , гдеexpr
находится ваш столбец или значение:или
У вашего исходного запроса был обратный синтаксис.
источник
concat()
для преобразования не обязательно интуитивно понятно . Я бы предпочел, чтобы мой код был ясным, и это не имеет большого смысла.Вы получаете это, потому что
VARCHAR
это недопустимый тип для преобразования. В соответствии с документами MySQL ( http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast ) вы можете использовать только:Я думаю, что лучше всего использовать
CHAR
.источник
да
это postgresql, но mySql этого не позволяет!
сокращение в mySql:
источник
У меня нет MySQL, но есть СУБД (в том числе Postgres), в которых вы можете использовать хак
Объединение выполняет неявное преобразование.
источник
Я решил проблему сравнения целочисленного столбца Column xa
varchar
сwhere CAST(Column_name AS CHAR CHARACTER SET latin1 ) collate latin1_general_ci = varchar_column_name
источник
использование:
источник
Я отвечу на это в общих чертах и очень благодарен перечисленным выше участникам.
Я использую MySQL в MySQL Workbench. У меня была аналогичная проблема при попытке объединить a
char
и anint
вместе с помощью этогоGROUP_CONCAT
метода. Таким образом, у меня сработало следующее:допустим, у вас
char
'c' иint
'i', поэтому запрос становится:...GROUP_CONCAT(CONCAT(c,' ', CAST(i AS CHAR))...
источник
Также должно быть возможно сделать что-то подобное:
источник