Home > Backend Development > PHP Tutorial > 各位大虾,帮我优化一下这个SQL语句

各位大虾,帮我优化一下这个SQL语句

WBOY
Release: 2016-06-23 14:22:33
Original
960 people have browsed it

sql 优化 mysql PHP

各位大虾,帮我优化一下这个SQL语句
$sql = " UPDATE `".$table."` SET $field = concat('".$value['result']."{hx}',now(),'{hx}".$value['name']."{hx}".$value['op']."{hx}".$value['suggestion']."') $auditing  WHERE `id`=".$value['id'];
global $conn;
mysql_query($sql,$conn);
if($auditing == ",`check`='yes'"){
$sql = "SELECT `mu_id` FROM `$table` WHERE `id` = $value[id] LIMIT 1";
$sql = mysql_query($sql,$conn);
$mu_id = mysql_fetch_array($sql);
$sql = "UPDATE `member_user` SET `check`='yes',`updatetime`=now() WHERE `id` = $mu_id[0]";
mysql_query($sql,$conn);
}
unset($conn);
return "审批成功";

回复讨论(解决方案)

把concat('".$value['result']."{hx}',now(),'{hx}".$value['name']."{hx}".$value['op']."{hx}".$value['suggestion']."')这个用php程序来实现,不要用sql的concat。

还有就是建立数据库索引了,这个对提高速度非常有帮助

还有吗下面那几句还能优化吗

if($auditing == ",`check`='yes'"){$sql = "SELECT `mu_id` FROM `$table` WHERE `id` = $value[id] LIMIT 1";$sql = mysql_query($sql,$conn);$mu_id = mysql_fetch_array($sql);$sql = "UPDATE `member_user` SET `check`='yes',`updatetime`=now() WHERE `id` = $mu_id[0]";mysql_query($sql,$conn);}可以改成if($auditing == ",`check`='yes'"){$sql = "UPDATE `member_user` SET `check`='yes',`updatetime`=now() WHERE `id` in (SELECT `mu_id` FROM `$table` WHERE `id` = $value[id] LIMIT 1)";mysql_query($sql,$conn);//语句简化了,对有没有提升不好说,不过如果索引要做好,应该会提升的,主要针对member_user.id,mu_id,id字段做索引}
Copy after login

谢谢  baoxiaohua  简化了SQL 语句

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template