programing

MySQL의 문자열에 삽입

lastmoon 2023. 9. 4. 20:34
반응형

MySQL의 문자열에 삽입

이런 일을 할 수 있을까요?기본적으로 저는 줄에 인트를 주조하고 조인에 그 줄을 사용하고 싶습니다.주의를 기울이기

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

int인 "col1"이라는 열이 있으면 다음과 같이 String에 캐스팅합니다.

CONVERT(col1,char)

예를 들어 int 값에 다음과 같은 다른 값(여기서는 9)이 포함되어 있는지 확인할 수 있습니다.

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

CONCAT를 사용할 수 있으며 CONCAT의 숫자 인수는 동등한 이진 문자열 형식으로 변환됩니다.

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

사용해 보십시오.CONCAT

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

제안된 것처럼 콘캣을 사용하는 것이 훨씬 더 좋습니다.

다음을 수행할 수 있습니다.

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

에 주의CAST(t1.id AS VARCHAR(10)).

정확히 이런 이유 때문은 아니지만, 조사를 하는 동안 여기서 끝났지만, 저는 이런 종류의 "퍼즐"을 좋아합니다 :-)

여기 제가 만든 랜덤 차량 플레이트 제너레이터 버전이 있습니다. 이는 유럽 플레이트에서 영감을 받았습니다(정확한 사본이 아닙니다!).

-- (AA) (BBCCCC) ['YY]  
--  \1   \2 \3     \4
--
-- 1 = year related series
-- 2 = Random MD5 string
-- 3 = Timestamp based MD5 string (uniqueness)
-- 4 = year of registration (shared with part 1)

SELECT
  UPPER(
    CONCAT(
      LEFT(
        TO_BASE64(
          @rndVehicleYear:= RIGHT(
            CONVERT(
              floor(rand() * (year(current_date) - (@minYear := 1980)) + @minYear),
              CHAR
            ),
            2
          )
        ),
        2
      ),
      SPACE(1),
        LEFT(MD5('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 2),
        LEFT(MD5(unix_timestamp()), 4),
      SPACE(2),
        CONCAT('`', @rndVehicleYear)
    )
  )
 AS RandomVehiclePlate;

간단한 단어로 설명하면, 1980년과 현재 연도 사이에 임의의 연도가 선택됩니다. 이 연도는 플레이트 끝에 처음 2개의 문자를 만드는 시드로 사용되지만 명확한 텍스트로도 사용됩니다.

두 개의 문자가 랜덤 MD5이고 마지막 4개는 현재 타임스탬프에 문자를 생성하여 플레이트가 고유한지 확인합니다(적어도 제 목표는 이것입니다).

제거할 수 있습니다.@rndVehicleYear := RIGHT(<- 마지막 두 숫자 대신 전체 연도를 유지합니다.

건배!

언급URL : https://stackoverflow.com/questions/12821528/int-to-string-in-mysql

반응형