SQL怎么查询出字段中等于某一个数字的记录? 50

例如数据表:idvalue11,3,45,7,922,4,6,8,1036,2,8,1,2442,19,8,7,4,6523,14,25,5,17631,55,59,5,... 例如数据表:
id value

1 1,3,45,7,9
2 2,4,6,8,10
3 6,2,8,1,24
4 2,19,8,7,4,6
5 23,14,25,5,17
6 31,55,59,5,4
--------------------------------

-- 表的结构 `test`

CREATE TABLE IF NOT EXISTS `test` (

`id` int(11) NOT NULL AUTO_INCREMENT,
`value` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

-- 转存表中的数据 `test`

INSERT INTO `test` (`id`, `value`) VALUES

(1, '1,3,45,7,9'),
(2, '2,4,6,8,10'),
(3, '6,2,8,1,24'),
(4, '2,19,8,7,4,6'),
(5, '23,14,25,5,17'),
(6, '31,55,59,5,4');
------------------------------------------------

我想select出 value中含有的数字等于4的所有记录(当然不等于45,24,14这些的,得出结果是第2、4、6条)。sql语句怎么写?
展开
 我来答
1015768572
2015-11-05 · TA获得超过223个赞
知道小有建树答主
回答量:345
采纳率:66%
帮助的人:156万
展开全部
SELECT [value] FROM [test] where INSTR( [value], ',4,' )>0
你这张表中最好不要使用关键字作为表的字段名字比如value
mysql中INSTR函数的用法
INSTR(字段名, 字符串)
这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始)
聚合智创
推荐于2018-03-29 · TA获得超过303个赞
知道小有建树答主
回答量:518
采纳率:80%
帮助的人:253万
展开全部
select * from test where value like '%,4' or value like '%,4,%' or value like '4,%';

这样???
分4在字段前,中,后三种???用regexp更好?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凳子杰
2014-05-13 · 超过102用户采纳过TA的回答
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:287万
展开全部
select * from test where id = 4 or value = 4; 应该是这样吧?
追问
比如第6条: value=”31,55,59,5,4“,含有5个数字分别是31,55,59,5,4。其中有一个数字等于4。

你value = 4。难道要”31,55,59,5,4“=4?
追答
嗯,听你这么一说我的又好像不对了  怎么创建表有语法错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式