SELECT * FROM coc_ecms_blog where 1 AND userid='9' AND truetime>=1235213750 AND checked=1 ORDER BY DESC LIMIT 0,5这里应该是某一个字段的条件吧.
SELECT * FROM coc_ecms_blog where 1 AND userid='9' AND truetime>=1235213750 AND checked=1 ORDER BY DESC LIMIT 0,5where好像有错,order by 后面有字段的。
userid='9' 直接写9吧,如果数据库字段为int
order by 后面少一个字段名称。你那个where后面的1完全多余,但这并不会造成语法错误,1可以代表一个永远为真的条件。userid='9',即使userid是int类型,值加引号也不会报错。但是注意,如果这个字段是非numric类型,在mysql5以上的版本你则必须用引号将值括起来,mysql5以上的版本不会自动转换数据类型了。
$condition = "WHERE 1";//$condition = "";
if($x==$y)
$condition .= "AND a=1";
//如果前面不是$condition="WHERE 1",那么这里就要这样$condition .= ($condition!='') ? "AND a=1" : "WHERE a=1";
if($x==$z)
$condition .= "AND b=1";
//同理,这里也是,如果前面不是$condition="WHERE 1",
//那么这里就要这样$condition为空时 $condition = "WHERE a=1";
//不为空也就是$condition已经等于"WHERE a=1"了,那么$condition .= "AND b=1";
$sql = "SELECT FROM TABLE {$condition}";对于我来说WHERE 1的意义,仅在于此,不知道其他同道是如何运用的?
程序这东西就是活,php更甚,所谓条条大路通罗马怎么做都可以做到结果。