登陆

Mysql 有啥方法 能够查询 一个串在另一个串里面

Mysql 有啥方法 能够查询  例如  '3,5'  这个串, 是在  '3,4,5,2'串  内

情况 大概是这个 

用户有多个属性, 属性ID是在用户表 用一个字段存储  

如user_attr,值存储格式为:'3,4,5,2',

解释下:例如 数字就是 属性ID

现在前端需要查询  同时具有多个属性的用户  

如 前端传过来需要查询的属性ID格式为 : '3,5' ,字符串的格式

我该怎么写查询呢,我用的thinkphp5,  <<in,like 这些我试过都不行>>



# PHP
ECHOECHO270 天前210 次浏览

全部回复(5)我要回复

  • 孤独是一种态度

    孤独是一种态度2020-03-18 09:19:54

    find_in_set() 了解下

    回复
    0
  • lk

    lk2020-01-15 18:29:13

    like正解

    回复
    0
  • junwind

    junwind2020-01-14 17:12:31

    这里不需要用sql查询,将前端传递来的3,5 转为数组[3,5] ,然后 3,4,5,2也转为数组,对比一下就知道在不里面了

    回复
    0
  • null

    null2020-01-03 00:31:25

    把3,5转换为数组,循环拼接where条件,user_attr like '%3%' or user_attr like '%5%' groug by 用户id呢?可能效率没有那么高,可以实现

    回复
    0
  • ECHO

    用like的话 3,13 5,15 这种没法区分吧

    ECHO · 2020-01-04 16:00:36
  • 取消回复发送