为您找到搜索结果:11880个
mysql将字符转换成数字
在操作mysql时,经常需要将字符转换成数字,这一步虽然简单,但不常用的话也很容易忘记,现将在网上找到的方法记录如下:1.将字符的数字转成数字,比如'0'转成0可以直接用加法来实现例如:将pony表中的d进行排序,可d的定义为varchar,可以这样解决select*fromponyorderby(d+0)2.在进行ifnull处理时,比如ifnull(a/b,'0')这样就会导致a/b成了字符串,因此需要把'0'改成0,即可解决此困扰3.比较数字和varchar时,比如a=11,b="11ddddd";则select11="11ddddd"相等若绝对比较可以这样:selectbinary11=binary"11ddddd"4.字符集转换: CONVERT(xxx USING gb2312)类型转换和SQLServer一样,就是类型参数有点点不同 :CAST(xxx AS 类型) , CONVERT(xxx,类型),类型必须用下列的类型:可用的类型: 二进制,同带bina...
***SQL统计语句总结(运用场景:运营分析,财务分析等)
--统计三月的每天的数据量selectcount(*),substr(t.date,1,10)fromtabletwheret.datelike'2010-03%'groupbysubstr(t.date,1,10);--统计从5月19到6月29的数据量SELECTsubstr(a.feed_publish_time,1,10)AS'日期',count(*)AS'医说数'FROMxm_feedaWHEREa.feed_publish_timeBETWEEN'2015-05-1900:00:00'AND'2015-06-2923:59:59'GROUPBYsubstr(a.feed_publish_time,1,10); SQL语句统计每天、每月、每年的数据1、每年selectyear(ordertime)年,sum(Total)销售合计from订单表groupbyyear(ordertime)2、每月selectyear(ordertime)年,month(ordertime)月,sum(Total)销售合计from订单表groupbyyear(ordertime),mont...
解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
php 5个版本,5.2、5.3、5.4、5.5,怕跟不上时代,新的服务器直接上5.5,但是程序出现如下错误:Deprecated:mysql_connect():Themysqlextensionisdeprecatedandwillberemovedinthefuture:usemysqliorPDOinsteadin,看意思就很明了,说mysql_connect这个模块将在未来弃用,请你使用mysqli或者PDO来替代。解决方法1:禁止php报错display_errors=On改为display_errors=Off鉴于这个服务器都是给用户用的,有时候他们需要报错(…都是给朋友用的,^_^),不能这做,让他们改程序吧,看方案2.解决方法2:常用的php语法连接mysql如下<?php$link =mysql_connect('localhost', 'user', 'password');mysql_select_db('dbname', $link); 改成mysqi<?php$link&n...
修改MYSQL数据库表的字符集
MySQL乱码的根源是的MySQL字符集设置不当的问题,本文汇总了有关查看MySQL字符集的命令。包括查看MySQL数据库服务器字符集、查看MySQL数据库字符集,以及数据表和字段的字符集、当前安装的MySQL所支持的字符集等。一、查看MySQL数据库服务器和数据库字符集。mysql>showvariableslike'%char%';+--------------------------+-------------------------------------+------|Variable_name|Value|......+--------------------------+-------------------------------------+------|character_set_client|utf8|......--客户端字符集|character_set_connection|utf8|......|character_set_database|utf8|......--数据库字符集|character_set_filesystem|binary|......
关于用 MySQL 存储 Emoji
http://www.v2ex.com/t/137724如果你希望让你的网站或者App支持Emoji,那么在初次设置MySQL时,有一些细节你需要知道。Emoji字符的特殊之处是,在存储时,需要用到4个字节。而MySQL中常见的utf8字符集的 utf8_general_ci 这个collate最大只支持3个字节。所以为了能够存储Emoji,你需要改用 utf8mb4 字符集。在创建表时,用类似这样的语句:CREATETABLE`tbl`(...)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATEutf8mb4_general_ci;对 utf8mb4 字符集的支持是MySQL5.5的新功能,所以你需要确保你使用的MySQL版本至少是5.5。基本上,2014年以后的新项目都应该直接上5.6了。在启用了 utf8mb4 字符集之后,备份和导入时就不能再用默认参数了。用mysqldump备份时,需要加入:mysqldump--default-charater-set=utf8m...
**SQL中Group By的使用
1、概述2、原始表3、简单GroupBy4、GroupBy和OrderBy5、GroupBy中Select指定的字段限制6、GroupByAll7、GroupBy与聚合函数8、Having与Where的区别9、Compute和ComputeBy1、概述“GroupBy”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。2、原始表3、简单GroupBy示例1select类别,sum(数量)as数量之和fromAgroupby类别返回结果如下表,实际上就是分类汇总。4、GroupBy和OrderBy示例2select类别,sum(数量)AS数量之和fromAgroupby类别orderbysum(数量)desc返回结果如下表在Access中不可以使用“orderby数量之和desc”,但在SQLServer中则可以。5、GroupBy中Select指...
***常见复杂SQL语句(含统计类SQL)
1、SQL统计某字段的出现次数比如统计某个表中,姓名出现的次数:selectname,count(*)frombiaogroupbynamehavingcount(*)>2关键是用分组:groupby,且经常和聚合函数一起使用比如:统计用户表中的匿名字段的出现次数SELECT a.user_anon_nameasanon_name ,COUNT(a.user_anon_name)asnumFROMxm_useraGROUPBYa.user_anon_name标准写法:select类别,sum(数量)as数量之和fromAgroupby类别havingsum(数量)>18 2、SQL中如何用一个表的列更新另一个表的列updateT2set要更新的字段=T1.对应的字段 --可以输入多个用逗号分开fromT1whereT2.ID=T1.ID3、SQL多字段排序select*from(select*fromtablenameorderbylast_timedesc)astorderbyt.iddesc...
Codeigniter 利用加密Key(密钥)的对象注入漏洞
http://drops.wooyun.org/papers/1449原文链接:http://www.mehmetince.net/codeigniter-object-injection-vulnerability-via-encryption-key/大家好,Codeigniter是我最喜爱的PHP框架之一。和别人一样,我在这个框架中学习了PHPMVC编程。今天,我决定来分析一下Codeigniter的PHP对象注入漏洞。我在接下来的叙述中会把重点放在Codeigniter的Session会话机制上。所有我将会分析的method方法都在CodeIgniter/system/libraries/Session.php文件里。我在本研究过程中使用的是Codeigniter2.1版本。Codeigniter使用PHP的序列化method方法来存储用户Session会话中的变量。但是CodeigniterSession会话机制并不像我们预期的那样工作。它把session会话的变量存在了客户端的cookie里面,大多数是在(服务器)硬盘上而不是用户COOKIE中。我不知道开发者们为什么这么设...
mysql update操作
update语法Single-table语法:UPDATE[LOW_PRIORITY][IGNORE]tbl_nameSETcol_name1=expr1[,col_name2=expr2...][WHEREwhere_definition][ORDERBY...][LIMITrow_count]Multiple-table语法:UPDATE[LOW_PRIORITY][IGNORE]table_referencesSETcol_name1=expr1[,col_name2=expr2...][WHEREwhere_definition]UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDERBY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。 如果您在一个表达式中通过tbl_name访问一列,则UPDATE使用列中的当前值。例如,以下语句把年龄列设置为比当前值多一:UPDATEpersondataSET...
Mysql 中的Text字段的范围
mysql中text最大长度为65,535(2的16次方–1)字符的TEXT列。如果你觉得text长度不够,可以选择MEDIUMTEXT最大长度为16,777,215。LONGTEXT最大长度为4,294,967,295Text主要是用来存放非二进制的文本,如论坛帖子,题目,或者百度知道的问题和回答之类。需要弄清楚的是text和charvarcharblob这几种类型的区别。详细用法可查看手册http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#column-type-overview...
sql中exists,not exists的用法
exists:强调的是是否返回结果集,不要求知道返回什么,比如: selectnamefromstudentwheresex='m'andmarkexists(select1fromgradewhere...),只要exists引导的子句有结果集返回,那么exists这个条件就算成立了,大家注意返回的字段始终为1,如果改成“select 2fromgradewhere...”,那么返回的字段就是2,这个数字没有意义。所以exists子句不在乎返回什么,而是在乎是不是有结果集返回。而exists与in最大的区别在于in引导的子句只能返回一个字段,比如: selectnamefromstudentwheresex='m'andmarkin(select1,2,3fromgradewhere...) ,in子句返回了三个字段,这是不正确的,exists子句是允许的,但in只允许有一个字段返回,在1,2,3中随便去了两个字段即可。而notexists和notin分别是exists和in的对立面。exists(sql返回...
**mysql数据库中实现内连接、左连接、右连接
左连接: select列1,列2,列Nfrom tableA leftjoin tableB ontableA.列=tableB.列(正常是一个外键列)[此处表连接成一张大表,完全当成一张普通表看] where,having,groupby...照常写。 右连接: select列1,列2,列Nfrom tableA right join tableB ontableA.列=tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看] where,having,groupby...照常写。 内连接: select列1,列2,列Nfrom tableA inner join tableB ontableA.列=tableB.列(正常是一个外键列) [此处表连接成一张大表,完全当成一张普通表看] where,having...
mysql sql语句中用括号处理or和and的运算顺序
需求,我要检索出a=1或者b=1并且c=0或者c=1时候的结果例子:select*fromtestwherea=1orb=1and(c=0orc=1)这里会检索a=1或者b=1的结果集,再过滤掉出其中c=0或者c=1的结果如果我们换个写法select*fromtestwherea=1orb=1andc=0orc=1这样会检索a=1或者b=1或者c=1的结果集,再过滤出其中c=0的结果,这个不是我期望的,所以用括号括起来调整他们的处理顺序就OK了。 先筛选同一个医院或同一个科室的用户list,再按照发医说数量和粉丝数再筛选一次用户list,正确SQL:SELECTa.*FROMxm_useraWHERE(a.user_hospital='301医院'ora.user_department='骨科')anda.user_id!=1andnotEXISTS(SELECTb.*FROMxm_user_friendshipbWHEREb.fs_from_user_id=1andb.fs_to_user_id=a.user_id);错误SQL:SELECTa.*FROMxm_...
NSPredicate用法总结(Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取)
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。定义(最常用到的方法): [objc] viewplaincopy NSPredicate *ca = [NSPredicate predicateWithFormat:(NSString *), ...]; Format:(1)比较运算符>,<,==,>=,<=,!=可用于数值及字符串例:@"number>100"(2)范围运算符:IN、BETWEEN例:@"numberBETWEEN{1,5}" @"addressIN{'shanghai','beijing'}"(3)字符串本身:SELF 例:@“SELF==‘APPLE’"(4)字符串相关:BEGINSWITH、ENDSWITH、CONTAINS例:@"nameCONTAIN[c...
mysql索引(btree索引和hash索引的区别)
所有MySQL列类型可以被索引。根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制。索引的存储类型目前只有两种(btree和hash),具体和存储引擎模式相关:MyISAMbtreeInnoDBbtreeMEMORY/Heaphash,btree默认情况MEMORY/Heap存储引擎使用hash索引MySQL的btree索引和hash索引的区别hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像btree(B-Tree)索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以hash索引的查询效率要远高于btree(B-Tree)索引。虽然hash索引效率高,但是hash索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。(1)hash索引仅仅能满足=,<=>,IN,ISNULL或者ISNOTNULL查询,不能使用范围查询。由于hash索引比较的是进行hash运算之后的hash值,所以它只能用于等值的过滤,不能用于基于范围的过滤,因为经过相应...