首页 >后端开发 >php教程 >thinkphp中mysql 如何嵌套查询不同的条件?

thinkphp中mysql 如何嵌套查询不同的条件?

WBOY
WBOY原创
2016-06-06 20:20:061652浏览

1比如,我要价格在20-30 50-60 70-80 价格区间的商品,关系为or
2同时标题要包含裙子,上衣,外套关系为or,
3还要排除标题包含童装,书籍,关系为and,
3个结果合并以id排序,然后取出数据.

大概类似下面的mysql 语句
(价格区间1 or 价格区间2 or 价格区间3) and (标题1 or 标题2 or 标题3) and (标题 not in(....)) order by id

然后再thinkphp 中如何用他的链式操作表示出来,尤其是里面复杂的嵌套查询条件?或者一般会采用什么样的办法?

回复内容:

1比如,我要价格在20-30 50-60 70-80 价格区间的商品,关系为or
2同时标题要包含裙子,上衣,外套关系为or,
3还要排除标题包含童装,书籍,关系为and,
3个结果合并以id排序,然后取出数据.

大概类似下面的mysql 语句
(价格区间1 or 价格区间2 or 价格区间3) and (标题1 or 标题2 or 标题3) and (标题 not in(....)) order by id

然后再thinkphp 中如何用他的链式操作表示出来,尤其是里面复杂的嵌套查询条件?或者一般会采用什么样的办法?

thinkphp的where()很好用的,可传数组的形式条件,对象形式,也可以多个参数一起,还可以接受原生sql where部分语句。也就是where('(价格区间1 or 价格区间2 or 价格区间3) and (标题1 or 标题2 or 标题3) and (标题 not in(....))') 这样是可以的,如果这样都满足不了你,你完成可以用$this->query()[M('XXX')->query()]来执行一条原生的sql

你需要的是 thinkphp 里面的 组合查询

_string _logic _complex 这几种用法可以满足了。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn