解决当distinct和join同时存在distinct失效问题
$sql = 'select distinct(ontopid),gb.id as id,f.id as fid,g.id as gid,g.*,gb.*,f.* from pk_groupbuy gb
left join pk_ontop as o on o.ontopid=gb.id
left join pk_goods g on gb.goodsid=g.id and g.status=2 and g.invalid>UNIX_TIMESTAMP()
left join pk_fastgroupbuy f on gb.fastgroupbuyid=f.id
where gb.id in ('.$arr_str.') and (gb.status="2" or gb.status="3")
and gb.endtime>UNIX_TIMESTAMP() and gb.starttime<UNIX_TIMESTAMP()
group by onid limit $start,$num";
return TableSystem::query($sql);
变量说明:$arr_str是一个由pk_groupbuy中主键 id组成的一个数组,经过explode函数得到的字符串,
$start,$num分别是查询的开始记录数,和要查询的记录数。
问题说明:pk_ontop表中ontopid在不能记录中有重复现象
比如:我只需要查询出来pk_ontop中当天置顶的ontopid,即商品id,不需要其他的商品信息,查询出来的有ontopid就算有重复现象,这时我可以通过去除数组重复元素解决问题,但是如果我要查询出相应商品id并查询其他相关联表中的信息,并按照ontop表中starttime,status,paixu字段进行排序等操作时,就需要join pk_ontop表,所以之前解决的重复问题就又会出现,无法处理,特别是在api中,是不允许出现重复的,这要怎么办呢?我也不会额,别人教我这样弄,请大家参考下:
$sql = 'SELECT DISTINCT(ontopid),starttime,paixu FROM pk_ontop ORDER BY starttime DESC,STATUS ASC,paixu ASC LIMIT 17';
$arr = TableSystem::query($sql);
foreach($arr as $key=>$val){
$topids[$key] = $val['ontopid'];
}
$arr_str = implode(',',$topids);
$arr1 = TableSystem::query($sql);
$sql = 'select gb.local,f.phone,f.shopname as fshopname,gb.maxnum,gb.intro,gb.buynum,g.pic,f.googleaddress,gb.goodsclassid,gb.sellerid,f.img,gb.province,gb.city,gb.id,gb.title,g.pic,gb.starttime,
gb.endtime,gb.price,gb.goodsprice from pk_groupbuy gb
left join pk_goods g on gb.goodsid=g.id and g.status=2 and g.invalid > UNIX_TIMESTAMP()
left JOIN pk_fastgroupbuy f ON f.id=gb.fastgroupbuyid
where (gb.status="2" or gb.status="3") and gb.endtime > UNIX_TIMESTAMP()
and gb.starttime < UNIX_TIMESTAMP() AND gb.id in ('.$arr_str.')';
$arr2 = TableSystem::query($sql);
foreach($arr2 as $key=>$val){
$local[$val['id']] = $val['local'];
$phone[$val['id']] = $val['phone'];
$fshopname[$val['id']] = $val['fshopname'];
$maxnum[$val['id']] = $val['maxnum'];
$intro[$val['id']] = $val['intro'];
$buynums[$val['id']] = $val['buynum'];
$fgoogleaddresss[$val['id']] = $val['googleaddress'];
$goodsclassid[$val['id']] = $val['goodsclassid'];
$sellids[$val['id']] = $val['sellerid'];
$provices[$val['id']] = $val['province'];
$citys[$val['id']] = $val['city'];
$titles[$val['id']]= $val['title'];
$pics[$val['id']] = $val['pic'] ? $val['pic'] : $val['img'];
$starttimes[$val['id']] = $val['starttime'];
$endtimes[$val['id']] = $val['endtime'];
$prices[$val['id']] = $val['price'];
$goodsprices[$val['id']] = $val['goodsprice'];
}
unset($arr2);
foreach($arr1 as $key=>$val){
$list[$key]['id'] = $val['ontopid'];
$list[$key]['province'] = $provices[$val['ontopid']];
$list[$key]['city'] = $citys[$val['ontopid']];
$list[$key]['title'] = $titles[$val['ontopid']];
$list[$key]['pic'] = $pics[$val['ontopid']];
$list[$key]['starttime'] = $starttimes[$val['ontopid']];
$list[$key]['endtime'] = $endtimes[$val['ontopid']];
$list[$key]['price'] = $prices[$val['ontopid']];
$list[$key]['goodsprice'] = $goodsprices[$val['ontopid']];
$list[$key]['sellerid'] = $sellids[$val['ontopid']];
$list[$key]['fgoogleaddress'] = $fgoogleaddresss[$val['ontopid']];
$list[$key]['goodsclassid'] = $goodsclassid[$val['ontopid']];
$list[$key]['buynum'] = $buynums[$val['ontopid']];
$list[$key]['intro'] = $intro[$val['ontopid']];
$list[$key]['maxnum'] = $maxnum[$val['ontopid']];
$list[$key]['fshopname'] = $fshopname[$val['ontopid']];
$list[$key]['fphone'] = $phone[$val['ontopid']];
$list[$key]['local'] = $local[$val['ontopid']];
}
return $list;
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 数据库教程: `mysql教程new`
--
-- --------------------------------------------------------
--
-- 表的结构 `test`
--
CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) NOT NULL auto_increment,
`websitename` varchar(200) character set utf8 NOT NULL,
`websiteurl` varchar(200) character set utf8 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
--
-- 导出表中的数据 `test`
--
INSERT INTO `test` (`id`, `websitename`, `websiteurl`) VALUES
(1, '百度', 'http://www.baidu.com'),
(5, 'google', 'http://www.google.com'),
(4, '400电话', 'http://www.111cn.net'),
(6, '搜狗', 'www.sogou.com'),
(7, '必应', 'http://www.111cn.net');
php教程 文件代码
<?php
function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}
function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
/**
*添加头部信息
* @param <type> $rsRec
*/
function addheader($rsRec) {
$fieldLen = mysql_num_fields($rsRec);
xlsBOF();
$iCell = 0;
for($i=0;$i<$fieldLen;$i++) {
$fieldname = mysql_field_name($rsRec, $i);
xlsWriteLabel(0,$iCell++, iconv("utf-8", "gb2312", $fieldname));
}
}
/**
*添加记录信息
* @param <type> $rsRec
*/
function addData($rsRec) {
$xlsRow=1;
$fieldLen = mysql_num_fields($rsRec);
while($rsone=mysql_fetch_object($rsRec)) {
$iCell = 0;
for($i=0;$i<$fieldLen;$i++) {
$fieldname = mysql_field_name($rsRec, $i);
$fieldnameValue = $rsone->$fieldname;
xlsWriteLabel($xlsRow,$iCell++,iconv("utf-8", "gb2312", $fieldnameValue));
}
$xlsRow++;
}
xlsEOF();
exit;
}
if(isset($_POST["tableName"])) {
$con = mysql_connect("localhost", "root", "vertrigo");
$result=mysql_db_query("mysqlnew","select * from ".$_POST["tableName"]);
// 文件头
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=test.xls ");
header("Content-Transfer-Encoding: binary ");
// 向表中添加数据
addheader($result) ;
addData($result) ;
mysql_close($con);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>excel信息导出</title>
</head>
<body>
<div>
<form name="form1" method="post" action="" onSubmit="">
<input type="text" name="tableName" value="" />
<br>
<input class="ccc" name="" type="submit" value="提交" />
</form>
</div>
</body>
</html>
运行画面
生成excel文件内容
id | websitename | websiteurl | |||
1 | 百度 | http://www.baidu.com | |||
5 | http://www.google.com | ||||
4 | 400电话 | http://www..111cn.net | |||
6 | 搜狗 | www.sogou.com | |||
7 | 必应 | http://www.111cn.net |
今天把在php教程开发中常用到的数据库教程操作方法函数总结分析一下了,希望有兴趣的朋友可以参考一下。
一、数据库操作
1. 连接MYSQL数据
mysql教程_connect()
提示和注释
注释:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。
提示:要创建一个持久连接,请使用 mysql_pconnect() 函数。
例子
<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}// 一些代码...
mysql_close($con);
?>
e.g.
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die(‘ www.111cn.net Unable to connect, please check connection paremeters’);
2. 选择数据库
mysql_select_db()
连接上数据库后,PHP默认选择的数据库未必是我们后面操作中需要的数据库,为确保数据库选择正确,一般在数据库连接语句后面还要加上数据库选择语句。
mysql_select_db() 函数设置活动的 MySQL 数据库。
如果成功,则该函数返回 true。如果失败,则返回 false。
语法
mysql_select_db(database,connection)
参数 描述
database 必需。规定要选择的数据库。
connection 可选。规定 MySQL 连接。如果未指定,则使用上一个连接。
e.g.
mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));
3. 执行SQL语句
mysql_query()
该函数将SQL语句发送到当前活动的数据库并执行语句,返回结果。
定义和用法
mysql_query() 函数执行一条 MySQL 查询。
语法
mysql_query(query,connection)
参数 描述
query 必需。规定要发送的 SQL 查询。注释:查询字符串不应以分号结束。
connection 可选。规定 SQL 连接标识符。如果未规定,则使用上一个打开的连接。
说明
如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。
返回值
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。
e.g.
$query = “SELECT * FROM $table”
$result = mysql_query($query, $db) or die(mysql_error($db));
4. 关闭数据库
mysql_close()
该函数用于关闭不需要继续活跃的数据库,但该方法不是必须的,一般PHP会自动关闭不继续活跃的数据库。
e.g.
mysql_close($db);
5. 释放SQL结果
mysql_free_result()
该函数用于释放mysql_query()执行结果占用的内存,该函数很少被调用,除非result很大,占用太多内存;一般在PHP脚本执行结束之后很自动释放占用的内存。
e.g
ysql_free_result() 函数释放结果内存。
如果成功,则返回 true,如果失败,则返回 false。
语法
mysql_free_result(data)
参数 描述
data 必需。要释放的结果标识符。该结果标识符是从 mysql_query() 返回的结果。
提示和注释
注释:mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。
例子
<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * from Person";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));// 释放内存
mysql_free_result($result);
$sql = "SELECT * from Customers";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));mysql_close($con);
?>
二、SQL执行结果操作
1. 返回执行结果中的一行
mysql_fetch_row()
返回执行结果的当前行的数值数组,执行这个函数后,结果指向下一行。
e.g.
$row = mysql_fetch_row($result);
处理执行结果一般放在while循环中,遍历每一行
e.g.
while($row = mysql_fetch_row($result))
{……}
2. mysql_fetch_row()的替代方法
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_array()返回键值对数组,键为查询的table的列名;
mysql_fetch_assoc()返回结果时可以先排序(如果为可选参数赋值),相当于mysql_fetch_array()+MYSQL_ASSOC
3. 执行结果的字段(列)属性
mysql_fetch_field()
eg.
mysql_fetch_field() 函数从结果集中取得列信息并作为对象返回。
mysql_fetch_field() 可以用来从查询结果中取得字段的信息。如果没有指定字段偏移量,则提取下一个尚未被 mysql_fetch_field() 取得的字段。
该函数返回一个包含字段信息的对象。
被返回的对象的属性为:
name - 列名
table - 该列所在的表名
max_length - 该列最大长度
not_null - 1,如果该列不能为 NULL
primary_key - 1,如果该列是 primary key
unique_key - 1,如果该列是 unique key
multiple_key - 1,如果该列是 non-unique key
numeric - 1,如果该列是 numeric
blob - 1,如果该列是 BLOB
type - 该列的类型
unsigned - 1,如果该列是无符号数
zerofill - 1,如果该列是 zero-filled
语法
mysql_fetch_field(data,field_offset)
参数 描述
data 必需。要使用的数据指针。该数据指针是从 mysql_query() 返回的结果。
field_offset 必需。规定从哪个字段开始。0 指示第一个字段。如果未设置,则取回下一个字段。
提示和注释
注释:本函数返回的字段名是区分大小写的。
例子
<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * from Person";
$result = mysql_query($sql,$con);while ($property = mysql_fetch_field($result))
{
echo "Field name: " . $property->name . "<br />";
echo "Table name: " . $property->table . "<br />";
echo "Default value: " . $property->def . "<br />";
echo "Max length: " . $property->max_length . "<br />";
echo "Not NULL: " . $property->not_null . "<br />";
echo "Primary Key: " . $property->primary_key . "<br />";
echo "Unique Key: " . $property->unique_key . "<br />";
echo "Mutliple Key: " . $property->multiple_key . "<br />";
echo "Numeric Field: " . $property->numeric . "<br />";
echo "BLOB: " . $property->blob . "<br />";
echo "Field Type: " . $property->type . "<br />";
echo "Unsigned: " . $property->unsigned . "<br />";
echo "Zero-filled: " . $property->zerofill . "<br /><br />";
}mysql_close($con);
?>
4. 查询数据库中的表名
我们要显示所有的表就会用到mysql_list_tables用法语法来操作,
mysql_list_tables 语法
mysql_list_tables()
e.g.
$db_name = MYSQL_DB;
$result = mysql_list_tables($db_name);
echo “数据库中包含如下表:”;
while ($row = mysql_fetch_row($result))
{
echo $row[0];
}
5. 查询数据库的列名(字段名)
esource mysql_list_fields ( string database_name, string table_name [, resource link_identifier] )
mysql_list_fields() 取得给定表名的信息。参数是数据库名和表名。返回一个结果指针,可以用于 mysql_field_flags(),mysql_field_len(),mysql_field_name() 和 mysql_field_ty
mysql_list_fields()
e.g.
$fields = mysql_list_fields($db_name,$table);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++)
echo mysql_field_name($fields, $i);
三、其他函数
1. mysql_num_rows()
mysql_num_rows() 函数返回结果集中行的数目。
语法
mysql_num_rows(data)
参数 描述
data 必需。结果集。该结果集从 mysql_query() 的调用中得到。
说明
mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()。
返回执行结果的行数。
e.g.
$num = mysql_num_rows($result);
2. mysql_num_fields()
返回执行结果的列数(字段数)。
e.g. $num = mysql_num_fields($result);
3.mysql_set_charset()
设置执行结果的编码,防止在网页中显示中文时乱码。
e.g.
$query = “select * from $table_name”;
mysql_query(‘set names utf8′);
$result = mysql_query($query, $db) or die(mysql_error($db));
注:
1. 文中大写代码为预定义的内容,如define(MYSQL_HOST, ‘localhost’);
sql update记录更新详细实例
语法:
[ WITH <common_table_expression> [...n] ]
UPDATE
[ TOP (expression) [ PERCENT ] ]
{ { table_alias | <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
| @table_variable
}
SET
{ column_name= { expression | DEFAULT | NULL }
| { udt_column_name.{ { property_name= expression
| field_name=expression }
| method_name(argument [ ,...n ] )
}
}
| column_name { .WRITE (expression,@Offset,@Length) }
| @variable=expression
| @variable= column=expression
| column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable=column { += | -= | *= | /= | %= | &= | ^= | |= } expression
} [ ,...n ]
[ <OUTPUT Clause> ]
[ FROM { <table_source> } [ ,...n ] ]
[ WHERE { <search_condition>
| { [ CURRENT OF
{ { [ GLOBAL ] cursor_name }
| cursor_variable_name
}
]
}
}
]
[ OPTION ( <query_hint> [ ,...n ] ) ]
[ ; ]
<object> ::=
{
[ server_name . database_name . schema_name .
| database_name .[ schema_name ] .
| schema_name .
]
table_or_view_name}
实例 php教程
<?php
mysql教程_connect("mysql153.secureserver.net","java2s","password");
mysql_select_db("java2s");$query = "UPDATE Employee SET salary = '39.99' ";
$result = mysql_query($query);
echo "There were ".mysql_affected_rows()." product(s) affected. ";?>
利用update 更新数据
<?php
mysql_connect("mysql153.secureserver.net","java2s","password");
mysql_select_db("java2s");$rowID = "0001";
$name = "Kate";
$price = "12";$query = "UPDATE Employee SET name='$name', price='$price' WHERE ID='$rowID'";
$result = mysql_query($query);if ($result)
echo "<p>The developer has been successfully updated.</p>";
else
echo "<p>There was a problem updating the developer.</p>";
?>
下面我们用Mysql数据库教程来存储用户的身份。我们需要从数据库中提取每个帐号的用户名和密码以便与$PHP_AUTH_USER和$PHP_AUTH_PW变量进行比较,判断用户的真实性。
首先,在MySql中建立一个存放用户信息的数据库
数据库名为XinXiKu ,表名为user;表定义如下:
View Code 1 create table user(
2 ID INT(4) NOT NULL AUTO_INCREMENT,
3 name VARCHAR(8) NOT NULL,
4 password CHAR(8) NOT NULL,
5 PRIMARY KEY(ID)
6 )
说明:
1、ID为一个序列号,不为零而且自动递增,为主键;
2、name为用户名,不能为空;
3、password为用户密码,不能为空;
以下是用户验证文件login.php教程
View Code 1 //判断用户名是否设置
2 if(!isset($PHP_AUTH_USER))
3 {
4 header("WWW-Authenticate:Basic realm="身份验证功能"");
5 header("HTTP/1.0 401 Unauthorized");
6 echo "身份验证失败,您无权共享网络资源!";
7 exit();
8 }
9 /*连接数据库*/
10 $db=mysql教程_connect("localhost","root","");
11 //选择数据库
12 mysql_select_db("XinXiKu",$db);
13 //查询用户是否存在
14 $result=mysql_query("SELECT * FROM user where name='$PHP_AUTH_USER' and password='$PHP_AUTH_PW'",$db);
15 if ($myrow = mysql_fetch_row($result))
16 {
17 //以下为身份验证成功后的相关操作
18 ...
19 }
20 else
21 {
22 //身份验证不成功,提示用户重新输入
23 header("WWW-Authenticate:Basic realm="身份验证功能"");
24 header("HTTP/1.0 401 Unauthorized");
25 echo "身份验证失败,您无权共享网络资源!";
26 exit();
27 }
28 ?>
程序说明:
在程序中,首先检查变量$PHP_AUTH_USER是否已经设置。如果没有设置,说明需要验证,脚本发出HTTP 401错误号头标,告诉客户端的浏览器需要进行身份验证,由客户端的浏览器弹出一个身份验证窗口,提示用户输入用户名和密码,输入完成后,连接数据库,查询该用用户名及密码是否正确,如果正确,允许登录进行相关操作,如果不正确,继续要求用户输入用户名和密码。
函数说明:
1、isset():用于确定某个变量是否已被赋值。根据变量值是否存在,返回true或false
2、header():用于发送特定的HTTP标头。注意,使用header()函数时,一定要在任何产生实际输出的HTML或PHP代码前面调用该函数。
3、mysql_connect():打开 MySQL 服务器连接。
4、mysql_db_query():送查询字符串 (query) 到 MySQL 数据库。
5、mysql_fetch_row():返回单列的各字段。
二、用session实现服务器验证
对于需要身份验证的页面,使用apache服务器验证是最好不过的了。但是,apache服务器验证的界面不够友好。而且,cgi模式的php,iis下的php,都不能使用apache服务器验证。这样,我们可以利用session在不同页面间保存用户身份,达到身份验证的目的。
在后端我们同样利用上面的Mysql数据库存放用户信息。
我们先编写一个用户登录界面,文件名为login.php,代码职下:
View Code 1 <form action="login1.php">
2 用户名:<input type="text" name="name"><br>
3 口 令:<input type="text" name="pass"><br>
4 <input type="submit" value="登录">
5 </form>login1.php处理提交的表单,代码如下:
View Code 1 $db=mysql_connect("localhost","root","");
2 mysql_select_db("XinXiKu",$db);
3 $result=mysql_query("SELECT * FROM user where name='$name' and password='$pass'",$db);
4 if ($myrow = mysql_fetch_row($result))
5 {
6 //注册用户
7 session_start();
8 session_register("user");
9 $user=$myrow["user"];
10 // 身份验证成功,进行相关操作
11 ...
12 }
13 else
14 {
15 echo"身份验证失败,您无权共享网络资源!";
16 }
17 ?>
这里需要说明的是,用户可以使用在后续的操作中用**http://domainname/next.php?user=用户名 **来绕过身份验证。所以,后续的操作应先检查变量是否注册:已注册,则进行相应操作,否则视为非法登录。相关代码如下:
View Code 1 session_start();
2 if (!session_is_registered("user"))
3 {
4 echo "身份验证失败,属于非法登录!";
5 }
6 else
7 {
8 //成功登录进行相关操作
9 ...
10 }
11 ?>
相关文章
- 索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 ...2014-06-07
- distinct这个关键字用来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。...2020-07-11
C# Distinct和重写IEqualityComparer时要知道的二三事
这篇文章主要给大家介绍了关于C# Distinct和重写IEqualityComparer时要知道的二三事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25- 这篇文章主要介绍了微信jssdk在iframe页面失效问题的解决措施 的相关资料,需要的朋友可以参考下...2016-03-07
- 下面小编就为大家带来一篇基于list循环删除元素,迭代器失效的问题详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
- PHP具备一系列日期和时间函数,这为您获取时间信息提供了便利,您可以将这些信息转换为需要的格式并用于计算或者展示给用户。但是假如您想实现一些复杂的功能,事情可能会变...2016-11-25
- 本文主要介绍了MySQL隐式类型转换导致索引失效的解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-12
- TP中distinct()的用处主要是去除重复的值,下面我通过实例代码给大家介绍下Thinkphp 中 distinct 的用法,一起看看吧...2017-01-08
- 这篇文章主要介绍了MySQL索引失效的几种情况,帮助大家更好的理解和使用MySQL索引,感兴趣的朋友可以了解下...2020-09-25
- 下面小编就为大家带来一篇PHP Header失效的原因分析及解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-11-22
- 这篇文章主要介绍了解决Spring AOP 同类调用失效问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-30
- asp.net4.0框架下验证机制失效的原因及处理办法,需要的朋友可以参考一下...2021-09-22
SQL中distinct 和 row_number() over() 的区别及用法
这篇文章主要介绍了SQL中distinct 和 row_number() over() 的区别及用法的相关资料,需要的朋友可以参考下...2017-03-14- 下面我们来看一篇关于Android给按钮设置背景的同时设置圆角例子,希望文章对于安卓开发者会带来帮助的哦,具体如下. 之前在做按钮的时候遇到在给按钮设置一张图片...2016-11-01
- 经常有人遇到ASP.NET 2.0(ASP.NET 1.x中可能是有效的)中CSS失效的问题,现将主要原因和解决方法罗列如下...2021-09-22
- 这篇文章主要介绍了IIS6 MVC4 路由失效 无法访问的解决方法,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了Django 解决distinct无法去除重复数据的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-20
- 这篇文章主要介绍了SpringBoot使用AOP,内部方法失效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-29
- 经常会有朋友问到类似于这样的问题, 表中的数据如下 ID AA BB 1 123 456 1 4535 54 1 60 6564 1 60 656 2 50 664 2 60...2016-11-25
- 这篇文章主要介绍了mysql回表致索引失效案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-14