MYSQL列中的数据以逗号隔开,如何查询?

在表task_detatils中,有responsible_user列数据,负责人有可能是多个人的ID集合,比如是1,2,3,11,也有可能只是一个人我想查询负责人是1的... 在表task_detatils中,有responsible_user列数据,负责人有可能是多个人的ID集合,比如是1,2,3,11,也有可能只是一个人
我想查询负责人是1的所有集合的SQL该如何写?
展开
 我来答
ser0326
2019-12-02 · TA获得超过1.4万个赞
知道答主
回答量:30
采纳率:100%
帮助的人:7264
展开全部

MYSQL列中的数据查询命令:

SELECT *

FROM task_detatils

WHERE FIND_IN_SET( ‘1’, responsible_user)

命令的含义:将含有1的responsible_user列数据全部搜索出来。

采用的是find函数:查找一定范围内元素的个数。查找[first,last)范围内,与toval等价的第一个元素,返回一个迭代器。如果没有这个元素,将返回last。

扩展资料:

其他的查询命令:

在命令后键入搜索的模式,再键入要搜索的文件。其中,文件名列表中也可以使用特殊字符,如“*”等,用来生成文件名列表。

如果想在搜索的模式中包含有空格的字符串,可以用单引号把要搜索的模式括起来,用来表明搜索的模式是由包含空格的字符串组成。

否则,Shell将把空格认为是命令行参数的定界符,而grep命令将把搜索模式中的单词解释为文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式“text file”。

用户可以在命令行上用Shell特殊字符来生成将要搜索的文件名列表。在下面的例子中,特殊字符“*”用来生成一个文件名列表,该列表包含当前目录下所有的文件。该命令将搜索出当前目录下所有文件中与模式匹配的行。

参考资料来源:百度百科-Linux文件内容查询命令

参考资料来源:百度百科-find函数

百度网友0c90796
推荐于2017-11-24 · TA获得超过1611个赞
知道大有可为答主
回答量:2638
采纳率:0%
帮助的人:1091万
展开全部
SELECT *
FROM `task_detatils`
WHERE FIND_IN_SET( '1', responsible_user)

将含有1的responsible_user列数据全部搜索出来
更多追问追答
追问
如果我的ID号是1, 负责人的ID号是11,这样也会找出来的,请问如何解决?
追答
这是不可能的,因为这个函数是根据字符串列表以英文逗号分隔进行检索的

参考资料: 第一php

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友acc6b67432
2011-10-08 · TA获得超过219个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:203万
展开全部
FIND_IN_SET 的函数可以解决你的问题.
另外还可以有其他的算法:
where concat(',',responsible_user,',') like '%,1,%'
当然使用函数的算法效率比较好.
后面写这个算法是让你理解一下.呵呵.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
phlovezj
2017-12-21
知道答主
回答量:12
采纳率:0%
帮助的人:6.3万
引用爱之冥想的回答:
SELECT *
FROM `task_detatils`
WHERE FIND_IN_SET( '1', responsible_user)

将含有1的responsible_user列数据全部搜索出来
展开全部
SELECT *
FROM `task_detatils`
WHERE concat(',',responsible_user,',') like '%,1,%'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式