手册目录
前言[随时更新]
MySQL快速复习
MySQL原生查询
选择数据表
删除数据
聚合查询
时间查询
视图查询
子查询
总结/参考
这个方法比较简单,这里快速带大家过一遍,重点讲手册没有提及的参数默认值

| 序号 | 参数 | 说明 |
|---|---|---|
| 1 | 字段名 | 当前记录中存在的字段名称 |
| 2 | 默认值 | 当查询失败时,返回该值 |
针对单条记录有意义 ,多条记录也只返回第一个记录对应的字段值
当前表tp5_staff 中数据如下:

<?php
namespace app\index\controller;
use think\Db;
class Index {
public function demo1(){
//查询单条记录中某个字段的值,如果失败,可设置输出默认值
$result = Db::table('tp5_staff') //设置数据表tp5_staff
->where('id=1007') //设置查询条件id=1007
->value('name','查无此人'); //查询字段值,如无则输出:查无此人
//输出查询结果
dump($result);
}
}
string(9) "潘金莲" //字符串类型,对应的值是:潘金莲,对照表可知查询成功
SELECT `name` FROM `tp5_staff` WHERE ( id=1007 ) LIMIT 1
注意:当前表中并无id=1107的记录,我们看一下无返回值时,如何处理?
<?php
namespace app\index\controller;
use think\Db;
class Index {
public function demo1(){
//查询单条记录中某个字段的值,如果失败,可设置输出默认值
$result = Db::table('tp5_staff') //设置数据表tp5_staff
->where('id=1107') //设置查询条件id=1107
->value('name','查无此人'); //查询字段值,如无则输出:查无此人
//输出查询结果
dump($result);
}
}
string(12) "查无此人" //当前表中,并无id=1107的记录返回值,因此结果为假,这时输出我们事先设定的默认值,给客户一个人性友好的提示信息
SELECT `name` FROM `tp5_staff` WHERE ( id=1107 ) LIMIT 1
当给定条件是一个区间范围时,常理推断应该返回一个数组,是不是这样呢?看实例:
<?php
namespace app\index\controller;
use think\Db;
class Index {
public function demo1(){
//查询单条记录中某个字段的值,如果失败,可设置输出默认值
$result = Db::table('tp5_staff') //设置数据表tp5_staff
->where('id > 1007') //设置查询条件id 大于 1007
->value('name','查无此人'); //查询字段值,如无则输出:查无此人
//输出查询结果
dump($result);
}
}
分析:查看tp5_staff表,因为id为正整数,所以 id 大于 1007 的第一条记录是 id =1008 ,而 id=1008 记录对应的name值是:宋江
string(6) "宋江" //输出id = 1008 记录对应 name字段值
SELECT `name` FROM `tp5_staff` WHERE ( id > 1007 ) LIMIT 1
结论:
1.value方法只能返回单记录查询结果中的指定的字段值;
2.当返回多个满足条件的记录时,也只获取第一条满足条件的记录对应字段值。
科技资讯
精品课程
共5课时 | 18万人学习
共49课时 | 82.1万人学习
共29课时 | 65万人学习
共25课时 | 41.3万人学习
共43课时 | 76.7万人学习