tp笔记


12.链式方法

<pre><code class="language-php">一.where 1. 表达式查询,就是 where()方法的基础查询方式; Db::name('user')-&gt;where('id', '&gt;', 70)-&gt;select(); 2. 关联数组查询,通过键值对来数组键值对匹配的查询方式; $result = Db::name('user')-&gt;where([ 'gender' =&gt; '男', 'price' =&gt; 100 或者 'price' =&gt; [60,70,80]]) -&gt;select(); 3. 索引数组查询,通过数组里的数组拼装方式来查询; $result = Db::name('user')-&gt;where([ ['gender', '=', '男'], ['price', '=', '100'] ])-&gt;select(); 4. 将复杂的数组组装后,通过变量传递,将增加可读性; $map[] = ['gender', '=', '男']; $map[] = ['price', 'in', [60, 70, 80]]; $result = Db::name('user')-&gt;where($map)-&gt;select(); 5. 字符串形式传递,简单粗暴的查询方式; Db::name('user')-&gt;where('gender="男" AND price IN (60, 70, 80)')-&gt;select();</code></pre> <pre><code class="language-php">二.field 1. 使用 field()方法,可以指定要查询的字段; Db::name('user')-&gt;field('id, username, email')-&gt;select(); Db::name('user')-&gt;field(['id', 'username', 'email'])-&gt;select(); 2. 使用 field()方法,给指定的字段设置别名; Db::name('user')-&gt;field('id,username as name')-&gt;select(); Db::name('user')-&gt;field(['id', 'username'=&gt;'name',])-&gt;select(); 3. 在 field()方法里,可以直接给字段设置 MySQL 函数; Db::name('user')-&gt;field('id,SUM(price)')-&gt;select(); 4. 对于更加复杂的 MySQL 函数,必须使用字段数组形式; Db::name('user')-&gt;field(['id', 'LEFT(email, 5)'=&gt;'leftemail' ,])-&gt;select(); 5. 使用 field(true)的布尔参数,可以显式的查询获取所有字段,而不是*; Db::name('user')-&gt;field(true)-&gt;select(); 6. 使用 field()方法中字段排除,可以屏蔽掉想要不显示的字段; Db::name('user')-&gt;field('details,email', true)-&gt;select(); Db::name('user')-&gt;field(['details,email'], true)-&gt;select(); 7. 使用 field()方法在新增时,验证字段的合法性; Db::name('user')-&gt;field('username, email, details')-&gt;insert($data); 三.alias 1. 使用 alias()方法,给数据库起一个别名; Db::name('user')-&gt;alias('a')-&gt;select(); 四.limit 1. 使用 limit()方法,限制获取输出数据的个数; Db::name('user')-&gt;limit(5)-&gt;select(); 2. 分页模式,即传递两个参数,比如从第 3 条开始显示 5 条 limit(2,5); Db::name('user')-&gt;limit(2, 5)-&gt;select(); 3. 实现分页,需要严格计算每页显示的条数,然后从第几条开始; //第一页 Db::name('user')-&gt;limit(0, 5)-&gt;select(); //第二页 Db::name('user')-&gt;limit(5, 5)-&gt;select(); 五.page 1. page()分页方法,优化了 limit()方法,无须计算分页条数; //第一页 Db::name('user')-&gt;page(1, 5)-&gt;select(); //第二页 Db::name('user')-&gt;page(2, 5)-&gt;select(); 六.order 1. 使用 order()方法,可以指定排序方式,没有指定第二参数,默认 asc; Db::name('user')-&gt;order('id', 'desc')-&gt;select(); 2. 支持数组的方式,对多个字段进行排序; Db::name('user')-&gt;order(['create_time'=&gt;'desc', 'price'=&gt;'asc'])-&gt;select(); 七.group 1. 使用 group()方法,给性别不同的人进行 price 字段的总和统计; Db::name('user')-&gt;field('gender, sum(price)')-&gt;group('gender')-&gt;select(); 2. 也可以进行多字段分组统计; Db::name('user')-&gt;field('gender, sum(price)') -&gt;group('gender,password')-&gt;select(); 八.having 1. 使用 group()分组之后,再使用 having()进行筛选; $result = Db::name('user') -&gt;field('gender, sum(price)') -&gt;group('gender') -&gt;having('sum(price)&gt;600') -&gt;select(); </code></pre>

页面列表

ITEM_HTML