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的数据。
就像四则运算加上小括号就有了计算优先原则。
TA贡献1828条经验 获得超3个赞
一样的写法 只是PHP的标准的写法是 where (`a`=1 or `a`=2) and `b`=3 这里的a b 为数字库字段名.所以要用那个符号.有时候不用也不出错.但为了更能适用多个平台.所以建议还是写上好点.
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);
这样也是批量操作的一个方法
- 4 回答
- 0 关注
- 1003 浏览
添加回答
举报