mysql FIND_IN_SET 用法

比如现在有个场景:
一家电子商务,在淘宝、京东、国美等平台售卖商品,商品可以同时在不同平台上卖,
现在需要查询所有在京东上出售的商品。

淘宝在数据库中用数字1表示,京东为2,国美为3

表结构如下:


SQL语句为:

SELECT * FROM `product` WHERE FIND_IN_SET(’2′,`channel`) ORDER BY `id` DESC;

FIND_IN_SET 可以理解为在所有数据中,检查每条数据所查询的条件,以逗号作为分隔符,来取数据。

SELECT * FROM `product` WHERE `id` IN (1,2);
可以理解为全部匹配。

评论关闭

yum保存要安装的rpm包及其依赖包

yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了 downloadonly (只下载)的选项来达到这个目的。

yum install --downloadonly <package-name>

默认情况下,一个下载的RPM包会保存在下面的目录中:

/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
以上的[repository]表示下载包的来源仓库的名称(例如:base、fedora、updates)

如果你想要将一个包下载到一个指定的目录(如/tmp):

yum install --downloadonly --downloaddir=/tmp <package-name>

注意,如果下载的rpm文件有其它的依赖关系,yum将会把所有的依赖关系包下载,但是都不会被安装。

另外一个重要的事情是,在CentOS/RHEL 6或更早期的版本中,你需要安装一个单独yum插件(名称为 yum-plugin-downloadonly)才能使用 downloadonly 命令选项:

yum install yum-plugin-downloadonly

如果没有该插件,你会在使用yum时得到以下错误:

Command line error: no such option: --downloadonly
评论关闭

txt文本文档导入mysql数据库

需求:有个密码字典需要导入mysql中以验证用户的密码是否出现在字典中,
如果存在就要求用户重新输入,所以必须有个密码字典表来查询。

密码文本文档内容为:
111
222
333
444
555
666
777
888
999

新建一个password表:

这里必须选择校对规则为utf8_bin,因为*_bin格式支持区分大小写,密码是区分大小写的。

执行SQL语句,从txt导入:

LOAD DATA INFILE 'C:/1.txt' INTO TABLE `password` LINES TERMINATED BY '\r\n';

C:/1.txt是文档的路径,BY ‘\r\n’ 是按照windows下的换行为一行导入。所以文本文档务必为DOS\WINDOWS格式。执行sql语句,提示9行受影响,

查看表数据:

导入成功。

如果是多个字段,那么表中创建对应字段,比如加入一个录入时间字段,那么对应的文档中,必须用TAB制表键隔开两个值,比如:

111 20161023  中间为TAB制表键隔开,不能用空格,空格会写到一个字段去。
222 20161024

评论关闭