扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
试编写代码示例如下:
创新互联于2013年开始,先为潮安等服务建站,潮安等地企业,进行企业商务咨询服务。为潮安企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
?php
//连接数据库
$db = new mysqli('localhost','test','test','test');
if ($db-connect_errno) {
printf("连接数据库失败: %s\n", $db-connect_error);
exit();
}
//对数据库根据时间字段按降序排序,并抽取前面的40条记录
$data = $db-query('select * from 数据表名 order by 时间字段名 desc limit 40');
$rows = $data-fetch_all(MYSQLI_ASSOC);
//随机生成 5 条记录数组
$rand_arr = array_rand($rows, 5);
//根据生成的随机数组,输出记录
for($i=0;$i5;$i++)
{
echo $rows[$rand_arr[$i]]['name'].' | '.$rows[$rand_arr[$i]]['description'].' | '.$rows[$rand_arr[$i]]['update_time'].'br/';
}
?
示例运行截图:
thinkphp 3.2 sql语句distinct用法
DISTINCT 方法用于返回唯一不同的值 。
例如:
$Model-distinct(true)-field('name')-select();
生成的SQL语句是: SELECT DISTINCT name FROM think_user
$sql="select * from mytb order by time desc limit 5"
不足5条,没关系。
凡事多尝试。
本人用ThinkPHP3.2,今天正在开发一个需要分组显示的功能,可是从数据库中把相应数据读取后直接用group分组,结果每组显示的是最老的记录,我的需求是要显示每组的最新记录。在网上大搜一翻后,未果,本人决定自行研究,现将方法记录于此以防遗忘。
其实很简单,以供就两步:
第一步:
将符合条件的数据全部取出,暂不用group分组,作为子查询:
[php] view plain copy
$subQuery = $model-field('id,name')-table('tablename')-where($where)-order('time desc')-select(false);
第二部:
利用子查询进行查询分组
[php] view plain copy
$model-table($subQuery.' a')-group('field')-select();span style="font-family: Arial, Helvetica, sans-serif;" /span
好了,思路就是这样。希望对大家有帮助!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流