目录
1、把从数据库中查询出的两个字段拼接
在ThinkPHP中使用 field 查询数据库字段时,使用数据库自带的CONCAT函数使两个字段拼接成一个新的自定义字段。
示例:
有两个字段 number 和 filename,其中number数据是1,filename字段数据是软件工程,把查出来的number和filename两个字段拼接成一个新的字段,输出的结果是:第1节:软件工程
$list = Db::table('point')->field('id,CONCAT("第", number, "节:", filename) AS title')->select();
也可以不带别的字符,仅仅是两个字段拼接,输出的结果是:1 软件工程
$list = Db::table('point')->field('id,CONCAT(number, " ", filename) AS title')->select();
2、新增自定义新字段
在ThinkPHP中使用 filed 查询数据库字段时,想新增一个数据库中不存在的字段,即新增一个自定义字段,使查询结果中函数该自定义字段
示例:在新查询结果中新增level字段为2,course字段为软件工程,此时就会输出id,level,cours三个字段的结果
$list = Db::table('point')->field('id, 2 as level, "软件工程" as course')->select();
使用view视图查询时,有时候自定义字段会报错,可以使用下面的写法,使用filed()来添加自定义字段
$list1 = Db::view('student_grade','grade_id,status')
->view('kejian_grade','kejian_id,create_time','student_grade.grade_id = kejian_grade.grade_id')
->field('1 as source')
->select();
3、FIND_IN_SET(str,strlist)判断str是否在数据表字段(strlist)中
该函数作用是判断str是否在数据表字段(strlist)中,返回值为null或记录。
其中str是要查询的字符串,如2;strlist是需要查询的数据库字段,字段中的值须是以英文逗号","分割,如(1,2,3,4)的形式。
假设table_name表中有字段strlist,值为1,2,3,4;想查询字符串2是否在strlist字段中,可以使用以下方法
$str = '2';
// 数据库中strlist的值为'1,2,3,4';
$sql = "SELECT * FROM table_name WHERE FIND_IN_SET($str,strlist)";
// 打印结果为
// SELECT name FROM table_name where FIND_IN_SET (2,strlist)
持续更新~