• mysql语句中判断是否包含某字符串的方法


    当我们需要对数据做筛选和查询的时候,往往会涉及到一些限制条件的判断,今天就分享一个判断字符串的技巧。

    like

    相信大家对like的用法肯定都很熟悉了,它可以匹配字段以某字符串开始,以某字符串结尾,包含有某字符串,用法如下:like '%string',like 'string%',like '%string%'

    find_in_set

    现在我们遇到这样一个需求,字段里面的值是这样的,(1,2,3,4),(12,14),(3,5,11,12),(22,25,28,29),然后需要判断字段里面是否有2这个值,如果我们使用like的话,肯定是得不到正确的结果(如果不信,可以用like去验证一下)

    这里我们来了解一下find_in_set,它是一个mysql字符串函数,用它就可以完美解决上面的问题,用法如下:find_in_set(2, 字段名称) = 0表示该字段不含有2,find_in_set(2, 字段名称) >= 1表示该字段含有2,举个例子:

    SELECT find_in_set('2',  '1,2,3,4,5') as test;
    -> 2
     SELECT find_in_set('2', '12,23,26,29') as test;
    -> 0

    locate

    它也是一个mysql字符串函数,方法如下:locate(单个字符串, 字段名称),和find_in_set用法相似,那它俩有没有区别的呢,看如下例子:

    执行sql语句:

    SELECT find_in_set('13', '3,6,13,24,33,36') as test;

    -> 3
    SELECT locate('13', '3,6,13,24,33,36') as test;

    -> 5

    这下知道区别了吧!

    理解了它们的用法和区别,在实际的项目的过程中就可以灵活使用咯。

  • 相关阅读:
    Vue3手册译稿
    Vue3手册译稿
    Vue3手册译稿
    Vue3手册译稿
    Vue3手册译稿
    Vue3手册译稿
    C# 多线程与异步的使用方法笔记
    PetaPoco 5.1.306 的生成模板加注释
    RichEditDocumentServer打印记录
    RichEditDocumentServer 打印份数
  • 原文地址:https://www.cnblogs.com/firstlady/p/9857723.html
Copyright © 2020-2023  润新知