当它是最后一个字符时删除连字符

时间:2013-08-21 14:40:52

标签: mysql

我在一个字段中有数千行,其中许多行包含-作为最后一个字符。我需要将值用作URL,因此这些URL会被破坏。有人可以给我phpmyadmin的SQL命令删除它们而不删除其他连字符吗?

2 个答案:

答案 0 :(得分:2)

我假设您正在使用MySQL ...因为您没有指定任何内容。这可能也会移植到其他SQL版本。在任何情况下,将其解释为伪SQL代码,你应该到达某个地方。

尝试这样的事情:

SELECT
    CASE WHEN RIGHT(My_Col, 1) = '-' THEN SUBSTR(My_Col, 0, LENGTH(My_Col)-2)
    ELSE My_Col AS My_Valid_Link
FROM
    My_Table

答案 1 :(得分:0)

这是您使用 MySQL 时所需的 SQL:

UPDATE your_table SET your_url = SUBSTR(your_url, 1, LENGTH(your_url) - 1) 
WHERE RIGHT(your_url, 1) = '-'

说明:RIGHT("https://www.example.com/bad-url-", 1) 将等于 "-"。 我们找到末尾带连字符的所有网址,并用相同的网址替换坏网址但末尾没有连字符(如@eatonphil 帖子)

警告:如果 your_url 字段上有唯一键,您可能会收到重复键错误。