如何进行模糊查询

#1 bsdos

我想查数据库里name以d开头的,如何进行模糊查询


$conditions = array("name" => '%d');

findAll($conditions);

2010-09-26 12:22:47

#2 jake

findAll的第一个参数(条件),可以使用字符串

$conditions = "name like '%d' ";

findAll($conditions);

2010-09-26 13:02:18

#3 bsdos

那我要混合查询呢?

$conditions = "name like '%d'  and age = 20";
age只是示例,可能我有好几个条件,但就有1个或2个需要模糊查询(like),是否是只能抛弃array,把sql翻译出来?

2010-09-26 16:56:44

#4 jake

那我要混合查询呢?

$conditions = "name like '%d'  and age = 20";
age只是示例,可能我有好几个条件, ...
bsdos 发表于 2010-9-26 16:56
正解。findAll的$conditions就相等于SQL语句里面的WHERE 后面的条件字符串。所以可以是AND,OR,in,like之类的条件都可以,组合到一起也可以。

select * from atable where name like 'jake%' AND age < 12 AND userid in (1,3,4,5)


就是等于


$conditions = "name like 'jake%' AND age < 12 AND userid in (1,3,4,5)";$g->findAll($conditions);

2010-09-26 17:58:33