2012-10-10 25 views
13

Böyle bir şey yapmak mümkün mü? Esasen bir diziye int atmak ve birleşimdeki dizeyi kullanmak istiyorum. Bunu yapabilecek %t1.id%int mysql içinde dize

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

cevap

0

dikkat edin:

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

dikkat edin CAST(t1.id AS VARCHAR(10)) için.

2

Sen CONCAT kullanabilirsiniz CONCAT

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

kullanarak Deneyin ve bunun sayısal argüman karşılık gelen ikili dize forma dönüştürülür. önerilen gibi

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 

kullanma concat daha iyi bir sütun int olan "col1" olarak adlandırılan varsa

24

olsa, böyle dize için döküm:

CONVERT(col1,char) 

Örneğin

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

sorguyu kullanabilirsiniz char numarasını dönüştürmek için: Bu bir int değeri böyle (burada 9) Başka bir değeri içeren bir kontrol etmenizi sağlar

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

Bu soru 5 yaşında, ve bu konudaki sizinkilere zaten benzer cevaplar var. Cevabınız bu konuya ne katar? – GrumpyCrouton