2013-03-11 2 views
10

나는 모든 값이 url 인 열 url을가집니다. 앞에서 말한 URL이 .pdf으로 끝나는 다른 열의 값을 업데이트하려고합니다.Mysql : 열 값이 특정 하위 문자열로 끝나는 행 찾기

아무도 도와 줄 수 있습니까? 나는 여기에 대한 대답을 찾지 못했습니다.

+1

당신은'right()'함수를 사용할 수 있습니다. –

답변

19

내가 간략하게 설명 할 수도 있지만, 설명에 따르면 LIKE가 문제를 해결할 수 있습니까?

UPDATE YourTable 
SET DifferentColumn = 'NewValue' 
WHERE Url LIKE '%.pdf' 
+0

그럴 것입니다. 유일한 것은 테이블이 거대하고 (수백만 레코드들), Like가 아마 걸릴 것입니다. MySQL에 네이티브 문자열 함수가 있었으면 좋겠어.하지만 같이 붙어있는 것 같아. – Phil

+0

글쎄, 그게 효과가 있었고 그렇게 오래 걸리지도 않았어. 감사 :-) – Phil

+0

@Phil 찾고있는 네이티브 함수는'right()'이다. –

0

따라서 like 매개 변수를 찾고있는 것 같습니다.

예를 들어

:

SELECT column(s) FROM table WHERE URL LIKE '%.pdf' 

또는 당신은이다 .PDF가 htis 경우 전에 아무 말처럼

UPDATE table SET column = value, ..., WHERE URL LIKE '%.pdf' 

을 %로 업데이트 할 수 있습니다.

희망이 도움이됩니다.

7

와일드 카드와 함께 LIKE 조건을 사용할 수 있습니다. %.pdf는 열 또는 당신이 관심의 기록을 식별 할 수 LOCATE('.pdf',url) > 0 같은 것을 사용하여 WHERE 절에서 right() 기능

UPDATE mytable 
SET newcolumn = 'PDF found' 
WHERE right(yourcolumn,4) = '.pdf' 
2

를 사용할 수 .pdf

UPDATE mytable 
SET newcolumn = 'PDF found' 
WHERE yourcolumn LIKE '%.pdf' 

에 종료해야 함을 의미한다.

As이 당신에게 문자열에 '.PDF'를 포함하는 모든 URL을 ... 당신은 확실히 마지막에 될 수있는 '.PDF'을 원하는 경우

하면, 당신은 또한 시도 할 수 있습니다를 제공합니다 지적했다 :

LOWER(RIGHT(url,4)) = '.pdf'

나는 어떤 경우 문제를 처리하기 위해 LOWER 또는 UPPER 사용할 수 있습니다.

LIKE %.pdf (대문자 또는 소문자 문제는주의해야합니다.) 다른 사용자가 제안한대로 을 사용할 수도 있습니다.

관련 문제