2 sky xin sky_xin 于 2016.02.26 19:59 提问

Mysql中字段本身就是用逗号分隔的,怎么进行IN的筛选

这是我数据库中的数据  图片说明

我像图2中这样写的sql居然能正确的匹配,因为之前没有这么写过,感觉这样写不太正确,但是结果确实是我想要的,请大神帮忙看看这样写对吗图片说明
如果不对的我,我就是想取得图2中结果1中的数据该怎么写呢

4个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.27 13:42
已采纳

那你能查到该字段包含3的记录吗?感觉这样用不正确啊。试试like语句会怎么样呢?
你是想查这个字段包含2或者3的记录吗,用catagory like '%3%' or category like "%2%",看看是不是你需要的数据,跟你用in对比有什么不同。

Royal_lr
Royal_lr   Ds   Rxr 2016.02.26 20:12

确实挺奇葩的,,但是得到了正确的结果

sky_xin
sky_xin   2016.03.10 22:46

谢谢各位,虽然那么写是能出正确的结果,但是没有那样用过,所以最后还是采用like的方式实现的。

sky_xin
sky_xin   2016.06.25 17:20

今天有答案了,可以用find_in_set函数来实现

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mysql 拆分以逗号隔开的字段并应用在in查询
mysql 拆分以逗号隔开的字段并应用在in查询利用substring_index及笛卡尔积来循环拆分sql字段;首先建立几条数据 id value Computer 5,ddd,eee Phone 12,3333,11 Pipe 234 假如我们需要查询的字段in phone字段的值(12,3333,11),我们可以用一下方法具体方法准备示例数据 create tab
如何在mysql中通过逗号分隔的字段在另一张表中查到多条记录
表一结构-- ---------------------------- -- Table structure for test1 -- ---------------------------- DROP TABLE IF EXISTS `test1`; CREATE TABLE `test1` ( `t1_id` int(11) NOT NULL AUTO_INCREMENT, `t1_na
MYSQL中利用select查询某字段中包含以逗号分隔的字符串的记录方法find_in_set
首先我们建立一张带有逗号分隔的字符串。 CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCHAR(20) NOT NULL,pnum VARCHAR(50) NOT NULL); 然后插入带有逗号分隔的测试数据 INSERT INTO test(pname,pnum) VALUES
mysql 字段值逗号分割后sql匹配
字段值里是多个值用逗号分割的样式,可以用这个函数匹配逗号分割后的单项 多行查询结果插入第三张表
当字段内有逗号分隔时,SQL如何对这些字段值进行分组
select       b.PRIMARYPOLLUTANT,count(b.PRIMARYPOLLUTANT) as primarypollutantCount  from        (select PRIMARYPOLLUTANT=convert(xml,' '+replace(PRIMARYPOLLUTANT,',',' ')+' ') from AIR_BASE_DAY_
mysql查询字段中以逗号分开内容
select * from table_name where ip ='124' or ip like '124.%' or ip like '%.124.%' or ip like '%.124' ORDER BY id desc
mysql——逗号分割字段情况
一、前言 由于历史原因、个人技术原因和各种坑爹项目原因,很多情况下我们会在一个字段中添加好多数据用逗号隔开,违反了第一范式原则。 对于这种情况下的查询等处理方法就不能用普通的方法进行处理,这个时候会出现众多业务需求,下面介绍了一下我遇到的情况供大家参考。 二、处理方法 1、find_in_set函数处理 有个文章表里面有个type字段,它存
MySQL数据库中字段含逗号的数据,分隔成多条数据
将数据库表的字段按逗号进行切割,分成多条数据, 主要为了解决同一个列中存储了多个属性值的问题。
当字段内有逗号分隔时,Oracle如何对这些字段值进行分组
CREATE  TABLE  info (     users    varchar(100) );   INSERT INTO info VALUES('userA@userB@userC'); INSERT INTO info VALUES('userB@userC@userD'); INSERT INTO info VALUES('userC@userD@
如何将两个不同分组(group by)的结果拼成逗号隔开的字符串
Group 1: mysql> select group_concat(ssh_id) from sm_attr where rule_id =1 group by rule_id; +----------------------------------+ | group_concat(ssh_id) | +-----------------------------