Mysql:查找列值以特定子字符串结尾的行

时间:2013-03-11 18:01:26

标签: mysql sql

我有一个列url,其中所有值都是网址。我正在尝试更新不同列的值 - 前面提到的url以.pdf结尾。

任何人都可以帮我吗?我在SO上找不到答案。

4 个答案:

答案 0 :(得分:25)

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

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

答案 1 :(得分: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 :(得分:2)

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

正如所指出的,这将为您提供字符串中包含'.pdf'的任何URL ...

如果你肯定希望'.pdf'在最后,你也可以尝试:

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

我会使用LOWER或UPPER来处理任何案件问题。

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

答案 3 :(得分:0)

所以看起来你正在寻找like参数。

例如:

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

或者您可以使用

进行更新
UPDATE table SET column = value, ..., WHERE URL LIKE '%.pdf'

在.pdf是htis案例之前,%就像说什么。

希望这有帮助。