• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

(mysql)怎样判断一个数字变量是否包含在表的一个字段中,并列出包含该变量的表中所有数据.该如何处理

php 搞代码 3年前 (2022-01-25) 15次浏览 已收录 0个评论

(mysql)怎样判断一个数字变量是否包含在表的一个字段中,并列出包含该变量的表中所有数据.
如表table 包含以下字段
id csite ….
1 1,2,13 ….
2 2,3,4 (本文来源gaodai#ma#com搞@@代~&码网

搞代gaodaima码

….
3 1,4,5 ….
4 2,5,23 ….
5 1,3,8 ….

假设取得一个数字变量3,怎样列出包含数字3的所有数据行

使用select id,csite from table where csite like ‘%3%’ or csite like ‘%3,%’ or csite like ‘%,3,%’ or csite like ‘%,3%’

这样行不通,会把13,23的也查出来

想要的结果是:
id csite ….
2 2,3,4 ….
5 1,3,8 ….

查过一些资料,用这个charindex(3,csite)>0试了不管用,该怎么办??

不要太复杂sql语句和存储过程

谢谢!!!!!

——解决方案——————–
可以使用MySQL自己的函数FIND_IN_SET

FIND_IN_SET(str,strlist)
Returns a value 如果字符串 str 在由 N 个子串组成的列表 strlist 中,返回一个 1 到 N 的值。一个字符串列表是由通过字符 “,” 分隔的多个子串组成。如果第一个参数是一个常数字符串,并且第二个参数是一个 SET 列类型,FIND_IN_SET() 函数将被优化为使用位运算!如果 str 在不 strlist 中或者如果 strlist 是一个空串,返回值为 0。如果任何一个参数为 NULL,返回值也是 NULL。如果第一个参数包含一个 “,”,这个函数将完全不能工作:
mysql> SELECT FIND_IN_SET(‘b’,’a,b,c,d’);
-> 2


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:(mysql)怎样判断一个数字变量是否包含在表的一个字段中,并列出包含该变量的表中所有数据.该如何处理

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址