MySQL "ON DUPLICATE KEY UPDATE" 语法分析

mysql "ON DUPLICATE KEY UPDATE" 语法
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
例如,如果列 a 为 主键 或 拥有UNIQUE索引,并且包含值1,则以下两个语句具有相同的效果:
INSERT INTO TABLE (a,c) VALUES (1,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;

分类至 MySQL
0条评论

数字证书原理

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!
1、基础知识
2、一个加密通信过程的演化
3、证书的构成和原理
4、在windows中对数字证书进行管理

分类至 网络应用
0条评论

PHP借助文件锁实现命令行脚本单例模式

思路其实很简单:用fopen打开一个文件,然后用flock获取该文件的独占锁,当前脚本还没跑完时,会一直持有这个锁,另一个脚本尝试获取锁就会返回失败并退出,从而达到控制同一时间只有一个脚本实例在执行的效果。封装代码如下...

分类至 PHP
0条评论

CentOS7编译安装PHP7.2.15

本文操作环境:CentOS Linux release 7.6.1810 (Core)。
指令记录如下:yum install autoconf gcc gcc-c++ wget curl curl-devel cmake libpng libpng-devel libjpeg libjpeg-devel libzip libxml2 openssl openssl-devel bzip2 bzip2-devel freetype freetype-devel libicu-devel libxslt libxslt-devel
……

分类至 Linux
0条评论

MySQL函数FIELD()用法

MySQL函数FIELD语法定义如下:
语法:FIELD(str, str1, str2, str3, ...)
解释:返回 str1,str2,str3,... 列表中str的索引(位置)。 如果未找到str,则返回0。如果FIELD()的所有参数都是字符串,则所有参数都将作为字符串进行比较。如果所有参数都是数字,则将它们作为数字进行比较。 否则,参数将进行两次比较。如果str为NULL,则返回值为0,因为NULL无法与任何值进行相等性比较。FIELD()和ELT()互补。

分类至 MySQL
0条评论

MySQL函数FIND_IN_SET()用法

MySQL函数FIND_IN_SET语法定义如下:
语法:FIND_IN_SET(str, strlist) 
解释:如果字符串str位于由N个子字符串组成的字符串列表strlist中,则返回1到N范围内的值。 strlist列表是一系列子串以英文逗号(,)拼接而成的字符串。 如果第一个参数是常量字符串而第二个参数是SET类型的列,则FIND_IN_SET()函数被优化为使用位算术。 如果str不在strlist中,或者strlist是空字符串,则返回0。 如果任一参数为NULL,则返回NULL。 如果第一个参数包含英文逗号(,)字符,则此函数无法正常工作。

分类至 MySQL
0条评论

MySQL函数GROUP_CONCAT()用法

先来看看官方手册对 GROUP_CONCAT 说明:

此函数返回一个字符串,是查询结果集合中指定列非NULL值的串联。如果所有列都是NULL,则此函数返回NULL。完整语法如下:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])

GROUP_CONCAT 是一个聚合函数,通常跟 GROUP BY 一起使用。

分类至 MySQL
0条评论

PHP获取客户端真实IP

按顺序依次判断$_SERVER['HTTP_X_FORWARDED_FOR']、$_SERVER['HTTP_CLIENT_IP']、$_SERVER['REMOTE_ADDR']这三个变量,如果有值就马上返回。翻开PHP手册,查看$_SERVER数组的解释,你会发现,手册里居然没有HTTP_X_FORWARDED_FOR、HTTP_CLIENT_IP这两个元素,只有REMOTE_ADDR的解释。首先,$_SERVER数组以HTTP_开头的元素,是来自客户端的header头信息,也就是说,它们是客户端传给服务器的。因此,这些值是可以伪造的,是不安全的!但是,这并不代表它们就没有用处。

分类至 PHP
0条评论

Nginx启用TLSv1.3和HTTP2

本文所述的操作环境:CentOS7.6。TLS1.3协议规范于2018年8月正式落地,需要openssl1.1.1版本才支持。执行指令查看当前系统的openssl版本:opensslversion显示为:OpenSSL1.0.2k-fips26Jan2017。执行yumupdate也无法更新到最新版本,只能手动安装。通过官网www.openssl.org查询,我们得知最新版本为1.1.1a,下面开始安装。我安装到/usr/local/openssl1.1.1目录,指令如下...

分类至 Linux
0条评论

MySQL5.7重置root密码

本人由于root密码设置太复杂,距离买云服务器过去好长时间,记不起来了,只好重置密码。编辑配置文件/etc/my.cnf,在[mysqld]段加入一行:skip-grant-tables。执行重启指令:service mysqld restart。重启成功后,即可免密码登录root用户:mysql -u root。登录成功后,执行SQL更改root密码:UPDATE mysql.user SET authentication_string = PASSWORD('123456') WHERE User = 'root'

分类至 MySQL
1条评论