2013-03-11 58 views
10

我有一列url,所有的值是网址结束。我试图更新不同列的值,其中上述url以.pdf结尾。MySQL的:查找行,其中列值与特定的子

任何人都可以帮助我吗?我在这里没有找到答案。

+1

你可以使用'正确的()'函数 – 2013-03-11 18:17:11

回答

19

我可能是过于简单化了......但根据您的描述,将LIKE解决问题了吗?

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

我想这会,唯一的事情是,该表是巨大的(几百万条记录),并像可能会需要一段时间。我希望在Mysql中有某种本地字符串函数,但它看起来像我坚持像... – Phil 2013-03-11 18:14:50

+0

嗯,它的工作,并没有花那么长时间,所以谢谢:-) – Phil 2013-03-11 18:20:57

+0

@Phil你正在寻找的本地函数是'right()' – 2013-03-11 18:23:20

0

因此,看起来您正在寻找like参数。

例如:

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

或者你可以用

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

的%好像是说任何东西之前的.PDF是htis情况更新。

希望这会有所帮助。

7

您可以使用具有前导通配符的LIKE条件。 %.pdf意味着列必须在.pdf

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

结束或者你可以使用right()功能

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

在您的WHERE子句中,使用类似LOCATE('.pdf',url) > 0识别感兴趣的记录。

正如指出的那样,这会给你一个包含字符串“.PDF”任何网址...

如果你一定要在“.PDF”是在结束时,你也可以尝试:

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

我会用下限或上限,以应付任何情况的问题。

您也可以使用LIKE %.pdf(再次注意大写/小写问题),建议他人使用 。

相关问题