【问题标题】:Mysql LIKE script ignores trailing space patternMysql LIKE 脚本忽略尾随空格模式
【发布时间】:2020-06-26 09:54:13
【问题描述】:

我有一个值8122 ,它的末尾有一个尾随空格。为什么我的 sql 脚本没有捕捉到这个?这是sql脚本:

select * from values where value like '% ' or value like ' %';

如何设置LIKE在这个意义上更敏感?

【问题讨论】:

    标签: mysql sql-like trailing-whitespace


    【解决方案1】:

    检查修剪前后 tsrngsm 的长度

    values是mysql中的保留字

    SELECT 
        * 
    FROM `values `
    WHERE LENGTH(value) > LENGTH(TRIM(value));
    

    如果你只想对右空格使用 RTRIM,而对于左 LTRIM

    如果您正在寻找只有一个空格,您必须检查

    SELECT 
        * 
    FROM `values `
    WHERE LENGTH(value)-1 = LENGTH(RTRIM(value))
        OR LENGTH(value)-1 = LENGTH(LTRIM(value));
    

    【讨论】:

    • 我试过 select * from test where LENGTH(value)
    • 你必须从>切换到
    • 它应该可以工作,但不是一直都可以dbfiddle.uk/…
    • 该死的,看起来它取决于 mysql 版本。我不敢相信没有办法检测到这一点!!!!!!愚蠢的是他们没有把这种区别放在......纯粹是愚蠢的
    • 我认为这是一个错误,所以我报告了它bugs.mysql.com/bug.php?id=100008
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2014-05-20
    • 2015-05-11
    • 2021-03-25
    • 2017-02-06
    相关资源
    最近更新 更多