从select语句中的字符串中删除百分比和语法

时间:2016-03-21 05:03:56

标签: mysql

我的数据列中包含语法字符串,例如' Consumer%20DNO%20CA'

我记得%20表示浏览器中的空格。

是否有一种简单的方法可以以特定方式选择此字段,以便返回消费者DNO CA'

与正则表达式相反,我想知道是否有一个我可以指定的命令?

注意我是最终用户分析师,并没有创建表和数据库。我想知道是否有一个函数来解码这种语法风格。也许我可以通过从表信息表中选择一些东西来找出语法首先是什么?

1 个答案:

答案 0 :(得分:1)

MySQL中没有url_decode函数,但如果你想保留mysql而且没有权限创建存储过程,你可以轻松REPLACE最常见的转义字符

以下示例包含RFC3986中的保留字符以及一些其他常用字符。

SELECT
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
        'Consumer%20DNO%20CA', -- replace with proper column
        '%20',' '),
        '%21', '!'),
        '%22', '"'),
        '%23', '#'),
        '%24', '$'),
        '%25', '%'), 
        '%26', '&'),
        '%27', '\''),
        '%28', '('),
        '%29', ')'),
        '%2A', '*'),
        '%2B', '+'),
        '%2C', ','),
        '%2D', '-'),
        '%2E', '.'),
        '%2F', '/'),
        '%3A', ':'),
        '%3B', ';'),
        '%3C', '<'),
        '%3D', '='),
        '%3E', '>'),
        '%3F', '?'),
        '%40', '@'),
        '%5B', '['), 
        '%5D', ']'), 
        '%5E', '^'), 
        '%7C', '|'), 
        '%7E', '~'), 
        '%80', '`') as url_decoded;