我有一个名为“test”的表,如下所示:
---------------------------
身份证|姓名|其他
---------------------------
1 |王| 1号
2张1号
3 |赵| 2号
---------------------------
我想将“其他人”字段分组,然后用“王”和“张”搜索名称。我可以用mysql实现如下:

select others, name2
from (select *, group_concat(name separator ',') as name2
      from test where 1=1 group by others) as sub
where name2 like '%wang%' and name2 like '%zhang%'

所以,我的问题是如何使用带有find或paginate的cakephp实现这一点?
谢谢你的帮助!

最佳答案

我不知道如何在cakehp中实现这一点,但编写查询的更好方法是:

select others, group_concat(name separator ',') as name2
from test
group by others
having sum(name = 'wang') > 0 and
       sum(name = 'zhang') > 0;

这也可以防止混淆。对于kwang,zhangke,您的版本将返回true。如果您真的需要此行为,请改用like
select others, group_concat(name separator ',') as name2
from test
group by others
having sum(name like '%wang%') > 0 and
       sum(name like '%zhang%') > 0;

09-20 09:40