我試圖運行笨笨MySQL查詢使用變量
SELECT users.id, users.first_name, users.last_name, users.game_id
FROM users
WHERE users.id NOT IN
(SELECT banned.users_id FROM banned) AND game_id = '1'
ORDER BY last_name
現在能正常工作在MySQL中下面的示例查詢,但我會要求下面是變量(game_id,「1」,姓氏),這樣我可以做以下
模型
function get_where_custom_ordered_checked($col, $value, $order_by) {
$query = $this->db->query('
SELECT users.id, users.first_name, users.last_name, users.game_id
FROM users
WHERE users.id NOT IN
(SELECT banned.users_id FROM banned) AND $col = $value
ORDER BY $order_by
');
return $query;
}
顯然,這並不工作,查詢不承認變量。我將如何實現這一目標?我也嘗試使用SET,如我的研究中所示,如下所示(但仍無濟於事)。
模型
function get_where_custom_ordered_checked($col, $value, $order_by) {
$query1 = 'SET @col = '$col', @value = '$value', @order_by = '$order_by'';
$this->db->query($query1);
$query2 = $this->db->query('
SELECT users.id, users.first_name, users.last_name, users.game_id
FROM users
WHERE users.id NOT IN
(SELECT players_phases.players_id FROM players_phases) AND @col = @value
ORDER BY @order_by
');
$query = $this->db->query($query2);
return $query;
}
現在我試着將它分解,而不是使用笨的Active Record類,但我不知道如何包括其中內where_not_in()()尤其是因爲我需要對第二個表運行NOT IN查詢 - 與Active Records CI文檔中顯示的與where_not_in()示例相反的where_not_in()示例不同,它與同一個表不同。
任何建議或幫助,將不勝感激。
非常感謝。
[笨的Active Record哪裏都不在字符串]的可能的複製(http://stackoverflow.com/questions/16673933/codeigniter-active-record-where-not-in-string) – splash58
可以解釋更多和你實現了什麼? – Divyesh
您也可以使用字符串插值。如果您需要在字符串中進行變量讀取,請使用雙引號。 – Tpojka