SQL查询数据库中带有某个相同字段的所有表

一,MySQL查询带有某个字段的所有表:

SELECT * FROM information_schema.columns WHERE column_name='字段名';

二,Oracle查询带有某个字段的所有表:

SELECT * FROM user_tab_columns WHERE column_name='字段名';

三,SQLServer查询带有某个字段的所有表:

SELECT * FROM [库名].[dbo].sysobjects WHERE id IN (SELECT id FROM [库名].[dbo].syscolumns WHERE name = '字段名')

注意:库名、字段名替换为对应的内容

SQL批量修改数据库表中的Unix时间戳

我接触的绝大部分PHP的Web项目,在存时间时,都是存的Unix时间戳,字段类型是int(10),显示的东西类似于1108879309这种数字。

批量修改这种Unix时间戳的MYSQL语句是:

UPDATE `table` SET addtime = unix_timestamp(DATE_SUB(from_unixtime(addtime), INTERVAL 1 MONTH)) WHERE 1

解释上面MYSQLSQL语句中涉及到的SQL函数:
1,用FROM_UNIXTIME()函数将Unix时间戳转换成 YYYY-MM-DD H:I 这种常见的格式,语法:FROM_UNIXTIME(unix_timestamp,format)
2,用DATE_SUB()函数从日期中减去指定的时间间隔,语法:DATE_SUB(date,INTERVAL expr type);如果要加上指定的时间间隔,用DATE_ADD(date,INTERVAL expr type)
DATE_SUB()DATE_ADD()函数不能直接操作Unix时间戳,所以用FROM_UNIXTIME()转换了一下
3,把Unix时间戳转换成 YYYY-MM-DD H:I 这种格式后,减去指定的时间间隔后,肯定要再转换成Unix时间戳才能更新到数据库中,用unix_timestamp()函数





阅读剩余部分

IIS取消文件夹下的文件脚本执行权限,禁止webshell木马运行

web项目如果有上传控件或者富文本编辑器,是极容易被上传webshell木马文件,木马文件运行后,黑客就可以提权拿到你服务器里的更多东西,很容易就造成极大损失。

修复程序的漏洞是一方面,另一方面就从服务器安全配置着手。一个最简单和常用的方法就是将附件上传目录的脚本执行权限取消。

阅读剩余部分

Excel用VLOOKUP核对数据,多个表格之间快速导入数据

Excel表1的数据:

A            B
ID          NUM
759936
759937
759938
759939
759940

Excel案例表2的数据:

A            B
ID          NUM
759935      2
759937      4
759938      5
759939      1
759942      3

表1和表2中,ID一列的数据不尽相同,表1中有的ID,表2中可能没得,表2中有的ID,表1也可能没得。
现在要用2个表对比,在表2中找表1对应的ID,并且把NUM的数据填写到表1对应的单元格。
用VLOOKUP函数:

=VLOOKUP(A2,[表2.xlsx]phome_dp_flink_bak!$A:$B,2,0)

注意,两个表最要都为xlsx版本。

VLOOKUP函数基础语法.jpg

MYSQL用group by去重后,再用count计算条数

假如表数据是:

name    id
刘德华   1
张学友   2
黎明     3
杨幂     2
赵丽颖   3

现在要查出有相同id的数量,并按id顺序排列,形成如下结果:

id    num
1     1
2     2
3     2

SQL语句:

SELECT id,COUNT(*) as num FROM table WHERE 1=1 GROUP BY id ORDER BY id