mysql 数据库中的三种判断是否包含总结

应用场景:

1:在使用mysql数据库存储数据的时候有时候一个字段,要存储使用逗号分隔的多个数据,在查询的时候,传递的是一个keyword,需要在逗号分隔的字段中进查询,这种情况怎么处理字段英文数据恢复

比如:

在爬虫爬取的时候,指定关键字查询,关键字可以是多个用逗号linux系统安装分隔。数据库字段计算器对应的字段是:key_word,存储的数据,比如系统运维工程师面试问题及答案:凯哥Java,kaigejava这样的。那么现在我要查询的关键字是:凯哥java这样的。怎么查询呢?

2:第二种情况,我们在更新的是,先判断如果指定字段,是否包含指定字符串。如果不包含,在原有字段上添加指定的字段。

比如:

在爬取网站的时数据科学与大数据技术候,没有添加数据分析http:/java培训/www. 这个。判断,如果没有添加的,都javaee更新添加http://www. 。这样的如何更新呢?

前期准备:

创建数据库:

CREAT字段英文E TABLE `config_sentiment` (

`config_sentiment_id` va数据库rchar(64) NOT NULL C字段OMMENT '舆情配置表-主键id',

`config_sentiment_web_name` varchar(60) NOT NULL COMMENT '抓取网站名称',

`config_sentiment_web_url` varchar(500) NOT NULL COMMENT '抓取网站网址',

`config_sentiment_item_name` varch系统运维工资一般多少ar(64) NOT NULL COMMENT数据结构 '项目id',

`config_sentiment_r字段宽度怎么设置ate` varchar(5) NOT NULL DEFAULT '1' COMMENT '抓取频率 默认1(1小时)',

`config_sentiment_keyword` varcha数据结构r(500) NOT NULL COMMENT '抓取关键字。多个用,分隔',

`config_sentiment_newtime` varc字段属性har(20) DEFAULT NULL COMMENT '最新抓取时间'字段属性,

`config_sentiment_number` int(20) DEFAULT NULL COMMEN字段值T '最新抓取条数',

`config_sentiment_addu字段名ser` varchar(64) NOT NULL COlinuxMMENT '创数据建人',

`config_sentiment_addtime` varchar(20) NOT NULL COMMENT '创建时间',

`config_sentiment_updateuser` varchar(64) DEFAULT NULL COMMENT '更新人',

`config_sentiment_updatelinux操作系统基础知识time` varchar(20) DEFAULT NULL COMMENT '更新时间',

PRIMARY KEY (`config_sentiment_id`)

) ENG数据库INE=InnoDB DEFAULT CHARSET=utf8;

java语言入数据:

insert into `数据漫游是什么意思config_sentiment`(`config_sentiment_id`,`config_sentiment_web_name`,`config_sentiment_web_url`,数据恢复`config_sentiment_javaitem_name`,`config_sentiment_rate`,`config_sentimelinux系统安装nt_ke数据分析yword`,`config_sentimenjavascriptt_newtime`,linux操作系统基础知识`config_sentiment_number`,`config_sentiment_adduser`,`config_sentiment_addtime`,`config_sentiment_updateuser`,`config_sentiment_updatetime`) values ('1',数据漫游是什么意思'凯哥Java','kaigejava.com','0'linux创建文件,'1','投资,理财','2018030909572100',10,'88888888','2018030909570021'字段宽度怎么设置,'88888888','2018030909570021'),('2','凯哥Java','kaigejava.com','0','1','百度,天猫','20',1数据结构0,'88888888','20','88888888','20'),('3','36','kaigejava.com','0','1','理财产品,百度理财,百度理财产品','2018030909570021',10,linux系统安装'88888888','2018030909570021','88888888','2018030909570021');

查看数据:


                                            mysql 数据库中的三种判断是否包含总结

我们可以看到,url中都没有添加http://。keyword中有多个产品。

争对场景一,解决方案有两个:

1:使用最常用的,模糊查询。sql语句:


                                            mysql 数据库中的三种判断是否包含总结

li字段宽度怎么设置ke之后,我们发现有两条数据。虽然模糊查询的模糊可前,可后。但是这样的模糊,查询出数据太多了。很多都不是我想要的。

我就想要【理财】这个keyword的数据。这样多数据中精确查询怎么解决?请看下:

解决方案二:

利用MySQL 字符串函数 find_in_set();

具体sql语句:

SELEClinux删除文件命令T t.conflinux系统安装ig_sentiment_weblinux是什么操作系统_urljava培训 url,t.config_sentiment_keyw字段ord keyword FROM config_sentime字段英文nt t WHERE FIND_IN_SET('理财', t.confi系统/运维g_sentiment_keyword);

查询后结果:


                                            mysql 数据库中的三种判断是否包含总结

这样就解决问题了。

争对问题2:更新语句:

UPDATElinux必学的60个命令 config_sentiment SET config_senti字段是什么意思ment_web_url =CONCAT('http://www.',config_sentiment_web_url) WHERE LOCATE('http://',config_sentiment_w数据库eb_url)=0;

执行结果:


                                            mysql 数据库中的三种判断是否包含总结

再次查询看看http://www.是否添加到数据库了。


                                            mysql 数据库中的三种判断是否包含总结

已经添加上了。问题已经解决。

需要注意的是:在linux操作系统基础知识mysql中字符串连接不是使用【+】而是使用【concat函数】

本文凯哥个人网站:http://kaigejava.linux操作系统基础知识co字段宽度怎么设置m/article/detail/122