A. php sql not in什么意思
sql里 not in意思是不属于某个集合,比如not in ('a','b','c','d')指的是不属于'a','b','c','d'这个集合
B. php连接MySQL可以通过select语句的limit来实现分页,但是MS SQL2000不支持limit这个属性如何实现分页
include("conn_mssql.php");
$a=$pagesize*($page-1);
$b=$pagesize;
ok=mssql_query(" select top $b ID from TABLE where ID not in(select top $a ID from TABLE order by ID) order by UserID ", $conn);
可以用这个语句 去实现:“select top $b ID from TABLE where ID not in(select top $a ID from TABLE order by ID) order by UserID”
C. 在PHP中使用SQL语句 怎么取出查询出来的最后一个数据
在PHP中使用SQL语句可以通过倒序排列记录取出第一条的记录取到最后一条数据。
一般,php调用mysql的接口查询,查询语句如下:
select * from table order by id DESC limit 1
这样就取出记录的最后一条记录。
D. php sql语句删除重复并保存一条
意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。
改写成下面就行了:
delete from tbl where id in
(
select a.id from
(
select max(id) id from tbl a where EXISTS
(
select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1
)
group by tac
) a
)
将select出的结果再通过中间表select一遍,这样就规避了错误。注意,这个问题只出现于mysql,mssql和oracle不会出现此问题。
E. 如何利用PHP执行.SQL文件
以下代码来自PHPBB的SQL文件解析类,原理就是逐行的解释SQL文件,并进行删除等操作,可以参照修改。希望能帮到你。
<?php
ini_set('memory_limit','5120M');
set_time_limit(0);
/***************************************************************************
*sql_parse.php
*-------------------
*begin:ThuMay31,2001
*right:(C)2001ThephpBBGroup
*email:[email protected]
*
*$Id:sql_parse.php,v1.82002/03/1823:53:12psotfxExp$
*
****************************************************************************/
/***************************************************************************
*
*Thisprogramisfreesoftware;youcanredistributeitand/ormodify
*
*theFreeSoftwareFoundation;eitherversion2oftheLicense,or
*(atyouroption)anylaterversion.
*
***************************************************************************/
/***************************************************************************
*
*_utilitiesundertheadmin
*,specifically
*
*functionsintothisfile.JLH
*
***************************************************************************/
//
//remove_
//....
//
functionremove_comments(&$output)
{
$lines=explode(" ",$output);
$output="";
//trytokeepmem.usedown
$linecount=count($lines);
$in_comment=false;
for($i=0;$i<$linecount;$i++)
{
if(preg_match("/^/*/",preg_quote($lines[$i])))
{
$in_comment=true;
}
if(!$in_comment)
{
$output.=$lines[$i]." ";
}
if(preg_match("/*/$/",preg_quote($lines[$i])))
{
$in_comment=false;
}
}
unset($lines);
return$output;
}
//
//remove_
//
functionremove_remarks($sql)
{
$lines=explode(" ",$sql);
//trytokeepmem.usedown
$sql="";
$linecount=count($lines);
$output="";
for($i=0;$i<$linecount;$i++)
{
if(($i!=($linecount-1))||(strlen($lines[$i])>0))
{
if(isset($lines[$i][0])&&$lines[$i][0]!="#")
{
$output.=$lines[$i]." ";
}
else
{
$output.=" ";
}
//Tradingabitofspeedforlowermem.usehere.
$lines[$i]="";
}
}
return$output;
}
//
//split_sql_.
//Note:expectstrim()tohavealreadybeenrunon$sql.
//
functionsplit_sql_file($sql,$delimiter)
{
//Splitupourstringinto"possible"SQLstatements.
$tokens=explode($delimiter,$sql);
//trytosavemem.
$sql="";
$output=array();
//wedon'.
$matches=array();
//thisisfasterthancallingcount($oktens)everytimethrutheloop.
$token_count=count($tokens);
for($i=0;$i<$token_count;$i++)
{
//Don'.
if(($i!=($token_count-1))||(strlen($tokens[$i]>0)))
{
//.
$total_quotes=preg_match_all("/'/",$tokens[$i],$matches);
//,
//whichmeansthey'reescapedquotes.
$escaped_quotes=preg_match_all("/(?<!\\)(\\\\)*\\'/",$tokens[$i],$matches);
$unescaped_quotes=$total_quotes-$escaped_quotes;
//,.
if(($unescaped_quotes%2)==0)
{
//It'sacompletesqlstatement.
$output[]=$tokens[$i];
//savememory.
$tokens[$i]="";
}
else
{
//incompletesqlstatement..
//$tempwillholdwhatwehavesofar.
$temp=$tokens[$i].$delimiter;
//savememory..
$tokens[$i]="";
//Dowehaveacompletestatementyet?
$complete_stmt=false;
for($j=$i+1;(!$complete_stmt&&($j<$token_count));$j++)
{
//.
$total_quotes=preg_match_all("/'/",$tokens[$j],$matches);
//,
//whichmeansthey'reescapedquotes.
$escaped_quotes=preg_match_all("/(?<!\\)(\\\\)*\\'/",$tokens[$j],$matches);
$unescaped_quotes=$total_quotes-$escaped_quotes;
if(($unescaped_quotes%2)==1)
{
//oddnumberofunescapedquotes.
//statement(s),wenowhaveacompletestatement.(2oddsalwaysmakeaneven)
$output[]=$temp.$tokens[$j];
//savememory.
$tokens[$j]="";
$temp="";
//exittheloop.
$complete_stmt=true;
//.
$i=$j;
}
else
{
//evennumberofunescapedquotes.Westilldon'thaveacompletestatement.
//(1oddand1evenalwaysmakeanodd)
$temp.=$tokens[$j].$delimiter;
//savememory.
$tokens[$j]="";
}
}//for..
}//else
}
}
return$output;
}
$dbms_schema='yourfile.sql';
$sql_query=@fread(@fopen($dbms_schema,'r'),@filesize($dbms_schema))ordie('problem');
$sql_query=remove_remarks($sql_query);
$sql_query=split_sql_file($sql_query,';');
$host='localhost';
$user='user';
$pass='pass';
$db='database_name';
mysql_connect($host,$user,$pass)ordie('errorconnection');
mysql_select_db($db)ordie('errordatabaseselection');
$i=1;
foreach($sql_queryas$sql){
echo$i++;
echo"
";
mysql_query($sql)ordie('errorinquery');
}
?>
F. 有关PHP中的SQL语句问题
可能是主键冲突了,AUTO_INCREMENT = 5 改为 AUTO_INCREMENT = 1
另外,赵六的id应该是4,不是3.
G. 在thinkphp中想用not in和子查询组合一个sql,这个该怎么写
$model=M("b");
$subQuery=$model->field('id')->where($map)->buildSql();
$modle2=M("a");
$List=$model2->where('idnotin'.$subQuery)->select();
这是thinkphp3.0的新特性貌似
H. php SQL语句
COUNT 和 (*) 之间不能有空格。
如果以下变量的设置正确:
$mysql_server_name,$mysql_username,$mysql_password
$mysql_database
程序应该能出结果。
为了让程序不出错误,可以这样:
$result=mysql_db_query($mysql_database,$sql,$conn);
if($result) {
$row=mysql_fetch_row($result);
print_r($row); // 调试
}