>  기사  >  백엔드 개발  >  mysql 多条件查询问题

mysql 多条件查询问题

WBOY
WBOY원래의
2016-06-23 14:39:441057검색

"select * from subcatalog WHERE name LIKE '%$keywords%' and catalog = $catalog ORDER BY rank $rank limit $pages, $rows"


上面的语句,怎么可以做到当 $catalog 这个值为空的时候,可以搜索其他的数据,现在这里catalog = $catalog 为空的时候列表就没有东西出来了 


回复讨论(解决方案)

当 $catalog 为空时
 catalog = $catalog ORDER
就变成
 catalog =  ORDER
显然出现了语法错误

至少需要用引号将 $catalog 括起,写作 '$catalog'

不过这样还是有问题的:只能查询到 catalog 为空的记录
如果你不希望这样,应该在 $catalog 为空时,不写 catalog='$catalog'

把and catalog = $catalog 这个条件提出来单独写成一个变量,当$catalog为空的时候整个条件都为空。。。

思路这样子的,语法自己调整下:

if($catalog==''){	$tiaojian = '';}else{	$tiaojian =  "and catalog = $catalog";}$sql = "select * from subcatalog WHERE name LIKE '%$keywords%' $tiaojian  ORDER BY rank $rank limit $pages, $rows"

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.