zoukankan      html  css  js  c++  java
  • mysql模糊查询1,11,111用逗号(其他符号)拼接的相似字符串

    mysql进行模糊查询时,基本都是LIKE "%sss%",有时候这种查询时准确的,但是有种情况这种查询会出现很大问题。

    看一下下面这张表

    如果想查询字段test包含1的数据,一般我们会用常规方式查询,如下:

    SELECT * FROM c_test WHERE test LIKE "%1%"

    但是查询结果不尽人意,如下:

    不仅把包含1的查出来了,包含11,110的都查询出来了,这并不是我们想要的结果,因为我们只想要id为1的数据

    此时,sql就有了大问题,我们可以做如下修改,将test字段值的两端都加上英文逗号,然后再LIKE查询,就不会有这种问题了,

    sql如下:

    SELECT * FROM c_test WHERE CONCAT(",",test,",") LIKE "%,1,%"

    此时的查询结果如下:

    这才是我们想要的结果。

    还有一种方式,用mysql函数FIND_IN_SET(str,strlist)

     sql如下:

    SELECT * FROM c_test WHERE FIND_IN_SET("1",test)

     但是这种方式只适用于用逗号隔开的字符串,使用时要注意一下

  • 相关阅读:
    MYSQL关键字的使用
    SESSION的使用
    COOKIE的使用
    ES6中的let与const---let与var的区别---详解
    JavaScript中四种数据类型检测的方法
    java数据类型
    讲Windows7的电脑搭建成服务器的教程
    ISS服务器
    用java编写一个万年历程序
    if 条件语句的用法
  • 原文地址:https://www.cnblogs.com/java-spring/p/11400115.html
Copyright © 2011-2022 走看看