为了账号安全,请及时绑定邮箱和手机立即绑定

php select查询语句后可以加几个or?

php select查询语句后可以加几个or?

繁星coding 2019-04-11 11:07:30
php select查询语句后可以加几个or? 
查看完整描述

4 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

用小括号()包含就可以区别开。
例如:
select * from table where title like '%hello%' and (contents like '%good%' or contents like '%ok%')
sql语句where部分解释如下:
title like '%hello%' and (contents like '%good%' or contents like '%ok%')
title 字段模糊查询包含 hello 字符串的数据,并且 contents 字段模糊查询包含 good 字符串的数据,或者contents 字段模糊查询包含 ok 字符串的数据
比如数据表数据如下:
字段 id --- title --- contents
数据 1 --- 11hello22 --- yougoodss
2 --- aaahello333 --- fdffokssfff
3 --- bbbhello666 ---- fffaafdafa1
像上面的数据sql语句会同时查询出1、2的数据。
就像四则运算加上小括号就有了计算优先原则。

查看完整回答
反对 回复 2019-04-23
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

一样的写法 只是PHP的标准的写法是 where (`a`=1 or `a`=2) and `b`=3 这里的a b 为数字库字段名.所以要用那个符号.有时候不用也不出错.但为了更能适用多个平台.所以建议还是写上好点.

查看完整回答
反对 回复 2019-04-23
?
弑天下

TA贡献1818条经验 获得超8个赞

select * from x where (id=1 and name="2") or (id=1 and name="3");
可以这样写
select * from x where id=1 and name in("2","3");
in 里面可以有很多参数,如果in里面数据量比较大,可以用数组存储,如
$array = (1,2,3,4,5);
$str = '';
foreach($array as $val){
$str .= $val . ','; //将值后面拼接一个逗号
}
$array = rtrim($str,','); //将数组变成合法的字符串
select * from x where id=1 and name in($str);
这样也是批量操作的一个方法

查看完整回答
反对 回复 2019-04-23
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

可以并用,需要注意的是:AND比OR优先,也就是先进行AND运算,再进行OR运算,如果你的想法不是这样,需要使用括号。

查看完整回答
反对 回复 2019-04-23
  • 4 回答
  • 0 关注
  • 1003 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信