Ich habe unter Abfrage und muss id
in varchar
Schema
create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');
Was ich probiert habe
select CAST(id as VARCHAR(50)) as col1 from t9;
select CONVERT(VARCHAR(50),id) as colI1 from t9;
aber sie arbeiten nicht. Bitte vorschlagen.
Sie müssen cast
oder convert
als CHAR
-Datentyp angeben. Es gibt keinen varchar
-Datentyp, in den Sie Daten konvertieren/konvertieren können:
select CAST(id as CHAR(50)) as col1
from t9;
select CONVERT(id, CHAR(50)) as colI1
from t9;
Siehe folgende SQL-in-Action-over bei SQL Fiddle :
/*! Build Schema */
create table t9 (id INT, name VARCHAR(55));
insert into t9 (id, name) values (2, 'bob');
/*! SQL Queries */
select CAST(id as CHAR(50)) as col1 from t9;
select CONVERT(id, CHAR(50)) as colI1 from t9;
Abgesehen davon, dass Sie versucht haben, in einen falschen Datentyp zu konvertieren, war die Syntax, die Sie für convert
verwendeten, falsch. Die convert
-Funktion verwendet Folgendes, wobei expr
Ihre Spalte oder Ihr Wert ist:
CONVERT(expr,type)
oder
CONVERT(expr USING transcoding_name)
Ihre ursprüngliche Abfrage hatte die Syntax rückwärts.
Sie erhalten das, weil "VARCHAR" kein gültiger Typ ist, in den gewirkt werden kann. Laut den MySQL-Dokumenten ( http://dev.mysql.com/doc/refman/5.5/de/cast-functions.html#function_cast ) können Sie nur in Folgendes umwandeln:
Ich denke, Ihre beste Wette ist die Verwendung von CHAR.
Ja
SELECT id || '' FROM some_table;
or SELECT id::text FROM some_table;
ist postgresql, aber mySql erlaubt das nicht!
abkürzung in mySql:
SELECT concat(id, '') FROM some_table;
Ich habe kein MySQL, aber es gibt unter anderem RDBMS (Postgres), in denen Sie den Hack verwenden können
SELECT id || '' FROM some_table;
Die Verkettung führt eine implizite Konvertierung durch.
Ich habe ein Problem beim Vergleichen einer ganzzahligen Spalte x einer varchar
-Spalte mit gelöst
where CAST(Column_name AS CHAR CHARACTER SET latin1 ) collate latin1_general_ci = varchar_column_name
Ich werde dies allgemein beantworten und bin den oben genannten Mitwirkenden sehr dankbar.
Ich verwende MySQL auf der MySQL Workbench. Ich hatte ein ähnliches Problem beim Versuch, ein char
und ein int
mithilfe der Methode GROUP_CONCAT
Zusammenzufügen. Zusammenfassend hat sich für mich Folgendes bewährt:
Angenommen, Ihr char
ist 'c' und int
ist 'i'. Die Abfrage lautet also:...GROUP_CONCAT(CONCAT(c,' ', CAST(i AS CHAR))...
benutzen :
SELECT cast(CHAR(50),id) as colI1 from t9;