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)

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

  • 相关阅读:
    在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)
    转载JSON格式化工具
    bzoj3771 Triple
    hdu 2082 找单词
    bzoj 3143: [Hnoi2013]游走
    Wannafly挑战赛17 B
    基尔霍夫矩阵
    矩阵&行列式
    luogu P2421 [NOI2002]荒岛野人
    bzoj 2818: Gcd
  • 原文地址:https://www.cnblogs.com/java-spring/p/11400115.html
Copyright © 2011-2022 走看看