登录
首页 >  Golang >  Go问答

【GO】MySQL like % 模糊查询问题,如果想查询的内容是%,该如何做?

来源:SegmentFault

时间:2023-03-10 18:20:06 437浏览 收藏

golang学习网今天将给大家带来《【GO】MySQL like % 模糊查询问题,如果想查询的内容是%,该如何做?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

这样一个场景:
mysql content 字段为 varchar,现在需要通过like查询 content 包含

正确答案<p><a target='_blank'  href='https://www.17golang.com/gourl/?redirect=MDAwMDAwMDAwML57hpSHp6VpkrqbYLx2eayza4KafaOkbLS3zqSBrJvPsa5_0Ia6sWuR4Juaq6t9nq5roGCUgXuytMyero5ko5XFfIfNhNCyr5q5aZ7Eq2Gix2yCpHxrna7I0JaulYqF38iLh96E3bluhuB5mqurfZ6ua4qcfn2gr7Oqu22CeYjesYiVzZHdrW6HqptkvIZ9Z76zhaqKjY-is9CzbQ' rel='nofollow'>https://github.com/go-gorm/go...</a></p><p>    query := escapeLike("%", "%", "%")
    ...</p>

func escapeLike(left, right, word string) string {
    var n int
    for i := range word {
        if c := word[i]; c == '%' || c == '_' || c == '\\' {
            n++
        }
    }
    // No characters to escape.
    if n == 0 {
        return left + word + right
    }
    var b strings.Builder
    b.Grow(len(word) + n)
    for _, c := range word {
        if c == '%' || c == '_' || c == '\\' {
            b.WriteByte('\\')
        }
        b.WriteRune(c)
    }
    return left + b.String() + right
}

到这里,我们也就讲完了《【GO】MySQL like % 模糊查询问题,如果想查询的内容是%,该如何做?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于mysql的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表