2012-10-10 22 views
13

¿Es posible hacer algo como esto? Básicamente, quiero convertir un int en una cadena y usar la cadena en una combinación. Prestar atención a la %t1.id%int en una cadena en mysql

select t2.* 
from t1 
join t2 on t2.url='site.com/path/%t1.id%/more' 
where t1.id > 9000 

Respuesta

0

Usted puede hacer esto: la atención

select t2.* 
from t1 
join t2 on t2.url = 'site.com/path/' + CAST(t1.id AS VARCHAR(10)) + '/more' 
where t1.id > 9000 

atención a CAST(t1.id AS VARCHAR(10)).

2

Pruébelo utilizando CONCAT

CONCAT('site.com/path/','%', CAST(t1.id AS CHAR(25)), '%','/more') 
7

Usted podría utilizar CONCAT, y el argumento numérico de ella se convierte en su forma de cadena binaria equivalente.

select t2.* 
from t1 join t2 
on t2.url=CONCAT('site.com/path/%', t1.id, '%/more') where t1.id > 9000 
2
select t2.* 
from t1 join t2 on t2.url='site.com/path/%' + cast(t1.id as varchar) + '%/more' 
where t1.id > 9000 

Usando concat como sugerido es aún mejor, aunque

24

Si ha una columna llamada "col1", que es de tipo int, se echó a cadena como esta:

CONVERT(col1,char) 

p.ej esto le permite comprobar un valor int es que contiene otro valor (en este caso 9) de esta manera:

CONVERT(col1,char) LIKE '%9%' 
-1

para convertir el número a char puede utilizar la consulta:

select CAST(id as CHAR(10)) from table; 
+1

Esta pregunta es de 5 años de edad, y ya hay respuestas similares a las tuyas en este hilo. ¿Qué agrega tu respuesta a este hilo? – GrumpyCrouton