2013-03-11 21 views

cevap

19

Aşırı basitleştirici olabilirim ... ama tanımınıza göre LIKE sorununuzu çözebilir mi? Eğer like parametresi için aradığınız gibi

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

Sanırım, tek şey tablo büyük (birkaç milyon kayıt) ve muhtemelen bir süre alacaktır. Mysql'de bir tür yerel dize işlevinin olduğunu umuyorum, ama sanki bir şey gibi yapışmış gibi gözüküyor ... – Phil

+0

Peki, işe yaradı ve çok uzun sürmedi, bu yüzden teşekkürler :-) – Phil

+0

@Phil Aradığınız yerel işlev 'right() 'dir –

0

Yani görünüyor.

örneğin

:

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

Yoksa olduğunu .pdf htis durumdur önce bir şey demek gibi

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

% ile güncelleyebilirsiniz.

Bu yardımcı olur umarım.

7

LIKE koşulu ile önde gelen joker karakterleri kullanabilirsiniz. %.pdf kolon Alternatif ilgi kaydı tanımlamak için LOCATE('.pdf',url) > 0 gibi bir şey kullanmak, WHERE madde için right() fonksiyonunu

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

kullanabilirsiniz .pdf

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

sona gerektiği anlamına gelir.

olarak bu size dizede '.pdf' içeren herhangi bir url ... kesinlikle sonunda olmak '.pdf' isterseniz

, ayrıca deneyebilirsiniz verecektir dikkat çekti:

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

Ben her durumda sorunları ile başa çıkmak için ALT veya ÜST kullanırsınız.

LIKE %.pdf'u (yine, büyük/küçük harf sorunlarına dikkat edin) başkalarının önerdiği şekilde olarak da kullanabilirsiniz.

İlgili konular