Czy można zrobić coś takiego? Zasadniczo chcę rzucić int w ciąg i użył ciąg na join. Należy zwrócić uwagę na %t1.id%
int do napisu w mysql
select t2.*
from t1
join t2 on t2.url='site.com/path/%t1.id%/more'
where t1.id > 9000
Czy można zrobić coś takiego? Zasadniczo chcę rzucić int w ciąg i użył ciąg na join. Należy zwrócić uwagę na %t1.id%
int do napisu w mysql
select t2.*
from t1
join t2 on t2.url='site.com/path/%t1.id%/more'
where t1.id > 9000
Można to zrobić:
select t2.*
from t1
join t2 on t2.url = 'site.com/path/' + CAST(t1.id AS VARCHAR(10)) + '/more'
where t1.id > 9000
zwrócić uwagę na CAST(t1.id AS VARCHAR(10))
.
Spróbuj używając CONCAT
CONCAT('site.com/path/','%', CAST(t1.id AS CHAR(25)), '%','/more')
Można użyć CONCAT i numeryczny argument jest konwertowany na jego odpowiednik binarnej postaci strun.
select t2.*
from t1 join t2
on t2.url=CONCAT('site.com/path/%', t1.id, '%/more') where t1.id > 9000
select t2.*
from t1 join t2 on t2.url='site.com/path/%' + cast(t1.id as varchar) + '%/more'
where t1.id > 9000
Korzystanie concat jak sugeruje to nawet lepiej, choć
Jeśli kolumna o nazwie "col1", które jest int, oddasz go do ciągów tak:
CONVERT(col1,char)
na przykład ten pozwala sprawdzić wartość int jest zawierający inną wartość (tutaj 9) tak:
CONVERT(col1,char) LIKE '%9%'
przekonwertować liczbę char można użyć zapytania:
select CAST(id as CHAR(10)) from table;
To pytanie ma 5 lat, i są już podobne odpowiedzi do twojego w tym wątku. Co twoja odpowiedź dodaje do tego wątku? – GrumpyCrouton