2012-10-10 24 views
13

Có thể làm điều gì đó như thế này không? Về cơ bản tôi muốn đúc một int vào một chuỗi và sử dụng chuỗi trên một tham gia. Chú ý đến các %t1.id%int vào chuỗi trong mysql

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

Trả lời

0

Bạn có thể làm điều này: sự chú ý

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

Pay để CAST(t1.id AS VARCHAR(10)).

2

Thử sử dụng CONCAT

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

Bạn có thể sử dụng CONCAT, và các đối số của nó được chuyển đổi sang dạng chuỗi nhị phân tương đương của nó.

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 

Sử dụng concat như gợi ý thậm chí còn tốt hơn mặc dù

24

Nếu bạn có một cột gọi là "col1", đó là int, bạn bỏ nó vào chuỗi như thế này:

CONVERT(col1,char) 

ví dụ điều này cho phép bạn kiểm tra một giá trị int được chứa một giá trị (ở đây 9) như thế này:

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

để chuyển đổi số để char bạn có thể sử dụng truy vấn:

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

Câu hỏi này là 5 tuổi, và đã có những câu trả lời tương tự cho câu trả lời của bạn trong chuỗi này. Câu trả lời của bạn thêm vào chủ đề này là gì? – GrumpyCrouton