codeigniter mysql查询_查询构造器类 — CodeIgniter 4.0.0 中文手册|用户手册|用户指南|中文文档...

$builder->like()

这个方法使您能够生成类似 LIKE 子句,做搜索时非常有用。

注解

所有传入数据将被自动转义。

注解

like* 通过传第五个参数传递值 true 可以强制在

执行查询时不区分大小写。这项特性可用性跟平台相关,否则将强制值转为小写,

例如 WHERE LOWER(column) LIKE '%search%',让其生效可能需要

在制作索引时用 LOWER(column) 而不是 column 。

简单 key/value 方式:

$builder->like('title', 'match');

// 生成: WHERE `title` LIKE '%match%' ESCAPE '!'

如果你多次调用该方法,那么多个 WHERE 条件将会使用 AND 连接起来:

$builder->like('title', 'match');

$builder->like('body', 'match');

// WHERE `title` LIKE '%match%' ESCAPE '!' AND `body` LIKE '%match% ESCAPE '!'

如果你想控制通配符通配符(%)的位置,可以指定第三个参数,

可用选项:’before’,’after’ 和 ‘both’ (默认) 。

$builder->like('title', 'match', 'before'); // 生成: WHERE `title` LIKE '%match' ESCAPE '!'

$builder->like('title', 'match', 'after'); // 生成: WHERE `title` LIKE 'match%' ESCAPE '!'

$builder->like('title', 'match', 'both'); // 生成: WHERE `title` LIKE '%match%' ESCAPE '!'

关联数组方式:

$array = ['title' => $match, 'page1' => $match, 'page2' => $match];

$builder->like($array);

// WHERE `title` LIKE '%match%' ESCAPE '!' AND `page1` LIKE '%match%' ESCAPE '!' AND `page2` LIKE '%match%' ESCAPE '!'

$builder->orLike()

这个方法和上面的方法一样,只是多个 WHERE 条件之间使用 OR 进行连接:

$builder->like('title', 'match'); $builder->orLike('body', $match);

// WHERE `title` LIKE '%match%' ESCAPE '!' OR `body` LIKE '%match%' ESCAPE '!'

$builder->notLike()

这个方法和 like() 方法一样,只是生成 NOT LIKE 子句:

$builder->notLike('title', 'match'); // WHERE `title` NOT LIKE '%match% ESCAPE '!'

$builder->orNotLike()

这个方法和 notLike() 方法一样,只是多个条件之间使用 OR 连接:

$builder->like('title', 'match');

$builder->orNotLike('body', 'match');

// WHERE `title` LIKE '%match% OR `body` NOT LIKE '%match%' ESCAPE '!'

$builder->groupBy()

该方法用于生成 GROUP BY 子句:

$builder->groupBy("title"); // 生成: GROUP BY title

你也可以通过一个数组传入多个值:

$builder->groupBy(["title", "date"]); // 生成: GROUP BY title, date

$builder->distinct()

该方法用于向查询中添加 “DISTINCT” 关键字

$builder->distinct();

$builder->get(); // 生成: SELECT DISTINCT * FROM mytable

$builder->having()

该方法用于生成 HAVING 子句,有下面两种不同的语法。

有两种可用语法,单参数或双参数:

$builder->having('user_id = 45'); // 生成: HAVING user_id = 45

$builder->having('user_id', 45); // 生成: HAVING user_id = 45

你还可以传递一个包含多个值的数组:

$builder->having(['title =' => 'My Title', 'id $id]);

// 生成: HAVING title = 'My Title', id < 45

如果你正在使用 CodeIgniter 为其转义查询的数据库,

你可以传第三个可选参数来防止转义内容,设为 FALSE 。

$builder->having('user_id', 45); // 生成: HAVING `user_id` = 45 in some databases such as MySQL

$builder->having('user_id', 45, FALSE); // 生成: HAVING user_id = 45

$builder->orHaving()

该方法和 having() 方法一样,只是多个条件之间使用 “OR” 进行连接。

$builder->havingIn()

生成一个 HAVING 字段的 IN (‘item’, ‘item’) SQL 查询子句,

多个条件之间使用 AND 连接

$groups = [1, 2, 3];

$builder->havingIn('group_id', $groups);

// 生成: HAVING group_id IN (1, 2, 3)

你可以用子查询代替数组。

$builder->havingIn('id', function(BaseBuilder $builder) {

return $builder->select('user_id')->from('users_jobs')->where('group_id', 3);

});

// 生成: HAVING "id" IN (SELECT "user_id" FROM "users_jobs" WHERE "group_id" = 3)

$builder->orHavingIn()

生成一个 HAVING 字段的 IN (‘item’, ‘item’) SQL 查询子句,

多个条件之间使用 OR 连接

$groups = [1, 2, 3];

$builder->orHavingIn('group_id', $groups);

// 生成: OR group_id IN (1, 2, 3)

你可以用子查询代替数组。

$builder->orHavingIn('id', function(BaseBuilder $builder) {

return $builder->select('user_id')->from('users_jobs')->where('group_id', 3);

});

// 生成: OR "id" IN (SELECT "user_id" FROM "users_jobs" WHERE "group_id" = 3)

$builder->havingNotIn()

生成一个 HAVING 字段的 NOT IN (‘item’, ‘item’) SQL 查询子句,

多个条件之间使用 AND 连接

$groups = [1, 2, 3];

$builder->havingNotIn('group_id', $groups);

// 生成: HAVING group_id NOT IN (1, 2, 3)

你可以用子查询代替数组。

$builder->havingNotIn('id', function(BaseBuilder $builder) {

return $builder->select('user_id')->from('users_jobs')->where('group_id', 3);

});

// 生成: HAVING "id" NOT IN (SELECT "user_id" FROM "users_jobs" WHERE "group_id" = 3)

$builder->orHavingNotIn()

生成一个 HAVING 字段的 NOT IN (‘item’, ‘item’) SQL 查询子句,

多个条件之间使用 OR 连接

$groups = [1, 2, 3];

$builder->havingNotIn('group_id', $groups);

// 生成: OR group_id NOT IN (1, 2, 3)

你可以用子查询代替数组。

$builder->orHavingNotIn('id', function(BaseBuilder $builder) {

return $builder->select('user_id')->from('users_jobs')->where('group_id', 3);

});

// 生成: OR "id" NOT IN (SELECT "user_id" FROM "users_jobs" WHERE "group_id" = 3)

$builder->havingLike()

该方法让你能够在 HAVING 查询部分生成 LIKE 子句,常用于搜索。

注解

该方法所有传入参数会被自动转义。

注解

havingLike* 通过传第五个参数传递值 true 可以强制在

执行查询时不区分大小写。这项特性可用性跟平台相关,否则将强制值转为小写,

例如 HAVING LOWER(column) LIKE '%search%',让其生效可能需要

在制作索引时用 LOWER(column) 而不是 column 。

简单 key/value 方式:

$builder->havingLike('title', 'match');

// 生成: HAVING `title` LIKE '%match%' ESCAPE '!'

如果你多次调用该方法,那么多个 WHERE 条件将会使用 AND 连接起来:

$builder->havingLike('title', 'match');

$builder->havingLike('body', 'match');

// HAVING `title` LIKE '%match%' ESCAPE '!' AND `body` LIKE '%match% ESCAPE '!'

如果你想控制通配符通配符(%)的位置,可以指定第三个参数,

可用选项:’before’,’after’ 和 ‘both’ (默认) 。

$builder->havingLike('title', 'match', 'before'); // 生成: HAVING `title` LIKE '%match' ESCAPE '!'

$builder->havingLike('title', 'match', 'after'); // 生成: HAVING `title` LIKE 'match%' ESCAPE '!'

$builder->havingLike('title', 'match', 'both'); // 生成: HAVING `title` LIKE '%match%' ESCAPE '!'

关联数组方式:

$array = ['title' => $match, 'page1' => $match, 'page2' => $match];

$builder->havingLike($array);

// HAVING `title` LIKE '%match%' ESCAPE '!' AND `page1` LIKE '%match%' ESCAPE '!' AND `page2` LIKE '%match%' ESCAPE '!'

$builder->orHavingLike()

这个方法和上面的方法一样,只是多个条件之间使用 OR 进行连接:

$builder->havingLike('title', 'match'); $builder->orHavingLike('body', $match);

// HAVING `title` LIKE '%match%' ESCAPE '!' OR `body` LIKE '%match%' ESCAPE '!'

$builder->notHavingLike()

这个方法和 havingLike() 一样,只是它生成的是 NOT LIKE 子句:

$builder->notHavingLike('title', 'match'); // HAVING `title` NOT LIKE '%match% ESCAPE '!'

$builder->orNotHavingLike()

这个方法和 notHavingLike() 一样,只是多个条件之间使用 OR 进行连接:

$builder->havingLike('title', 'match');

$builder->orNotHavingLike('body', 'match');

// HAVING `title` LIKE '%match% OR `body` NOT LIKE '%match%' ESCAPE '!'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值