如何从 MYSQL 中获取随机行以及如何将其写入活动记录?
How to get random row from MYSQL and how to write it in active records?
这是我的查询
"SELECT * FROM package_info ORDER BY RAND() LIMIT 0,3;"
我试着这样写在活动记录中
$this->db->select('*');
$this->db->from('package_info');
$this->db->order_by("id", "random");
$this->db->limit(0, 3);
$result = $this->db->get();
但这是行不通的。如何在活动记录中写入?
CodeIgniter 不要求您为大多数查询生成器语句提供 2 个参数,您可以通过执行 ->where('1=1')
来完成整个 WHERE 并且它非常好。
我很惊讶有多少人不理解方法链,但我会在我的例子中展示它更好...
$result = $this->db->select('*')
->from('package_info')
->order_by('rand()')
->limit(0, 3)
>get();
如上所述,如果您在原始查询中没有 2 个参数,则不必添加两个。
你可以用这些基本查询做的另一件事是完全省略 from('package_info')
并将 table 名称粘贴在 ->get('package_info')
中
如果您不喜欢查询生成器,则也不需要使用它。我不喜欢某些东西(你不能将 UNION 与它们一起使用)。在这种情况下,只需使用
$result = $this->db->query("SELECT * FROM package_info ORDER BY RAND() LIMIT 0,3;");
使用下面的代码可以正常工作 -
$this->db->select('*');
$this->db->from('package_info');
$this->db->order_by("id", "random");
$this->db->limit(3, 0);
$result = $this->db->get()->result();
// shows last executed query
echo $this->db->last_query();
// shows data fetched
echo "<pre>";
print_r( $result );
echo "</pre>";
您可以访问此 link 以查看如何在 Codeigniter 中使用查询。
https://www.codeigniter.com/userguide2/database/active_record.html
这是我的查询
"SELECT * FROM package_info ORDER BY RAND() LIMIT 0,3;"
我试着这样写在活动记录中
$this->db->select('*');
$this->db->from('package_info');
$this->db->order_by("id", "random");
$this->db->limit(0, 3);
$result = $this->db->get();
但这是行不通的。如何在活动记录中写入?
CodeIgniter 不要求您为大多数查询生成器语句提供 2 个参数,您可以通过执行 ->where('1=1')
来完成整个 WHERE 并且它非常好。
我很惊讶有多少人不理解方法链,但我会在我的例子中展示它更好...
$result = $this->db->select('*')
->from('package_info')
->order_by('rand()')
->limit(0, 3)
>get();
如上所述,如果您在原始查询中没有 2 个参数,则不必添加两个。
你可以用这些基本查询做的另一件事是完全省略 from('package_info')
并将 table 名称粘贴在 ->get('package_info')
如果您不喜欢查询生成器,则也不需要使用它。我不喜欢某些东西(你不能将 UNION 与它们一起使用)。在这种情况下,只需使用
$result = $this->db->query("SELECT * FROM package_info ORDER BY RAND() LIMIT 0,3;");
使用下面的代码可以正常工作 -
$this->db->select('*');
$this->db->from('package_info');
$this->db->order_by("id", "random");
$this->db->limit(3, 0);
$result = $this->db->get()->result();
// shows last executed query
echo $this->db->last_query();
// shows data fetched
echo "<pre>";
print_r( $result );
echo "</pre>";
您可以访问此 link 以查看如何在 Codeigniter 中使用查询。 https://www.codeigniter.com/userguide2/database/active_record.html