![](/img/trans.png)
[英]How do I get a query from an array of primary keys using codeigniter framework
[英]How do I do this query on codeigniter framework?
我是 codeigniter 的新手,希望你能幫助我。
我在下面有一個 sql 查詢,它在 codeigniter 框架上看起來如何?
SELECT m.conversation_id, count(m.message_id)
FROM cms_conversations__messages AS m
LEFT JOIN cms_conversations__participants AS p ON p.conversation_id = m.conversation_id AND (p.last_read IS NULL OR m.added > p.last_read) AND m.user_id != 2
WHERE p.user_id = 2
GROUP BY p.user_id
先感謝您。
如果您確定您的查詢是正確的,那么這就是 codeigniter 的方法
$this->db->select('m.conversation_id, count(m.message_id) as message_count');
$this->db->from('cms_conversations__messages as m');
$this->db->join('cms_conversations__participants as p', 'p.conversation_id = m.conversation_id and (p.last_read IS NULL OR m.added > p.last_read) and m.user_id != 2', 'left');
$this->db->where('p.user_id', '2');
$this->db->group_by('p.user_id');
return $this->db->get()->result(); // or you can also store it in a variable
有關更多信息,您可以查看文檔。 希望能幫助到你
作為使用 Query Builder 的替代方法,您可以使用支持綁定數據的query()
進行常規查詢。 ( 記錄在這里)
在您的情況下,可以這樣做。
$sql = "SELECT m.conversation_id, count(m.message_id)
FROM cms_conversations__messages AS m
LEFT JOIN cms_conversations__participants AS p ON p.conversation_id = m.conversation_id
AND (p.last_read IS NULL OR m.added > p.last_read)
AND m.user_id != ? WHERE p.user_id = ? GROUP BY p.user_id";
$id = 2;
$query = $this->db->query($sql, [$id, $id]);
//$query might be FALSE, always check for that before trying to get a dataset
if($query !== FALSE)
{
return $query->result();
}
return FALSE;
數據綁定到$sql
字符串中的兩個問號,該字符串在query()
的第二個參數中作為數組(即[$id, $id]
)提供。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.