[英]SQL SELECT everything except parameter
假設您有一個查詢,其中您根據像這樣的參數選擇了一些東西:
$parameters = [$country];
$query = 'SELECT g.* FROM game g ' .
'INNER JOIN game_country gc ON g.id = gc.gameId ' .
'INNER JOIN countries c ON c.id = gc.countryId ' .
'WHERE c.name = ? ';
$stmt = $this->_db->query($query, $parameters);
因此,這是如何工作的,您選擇要使用的國家/地區。
我的目標是選擇將被排除在選擇范圍之外的國家。
所以我嘗試過的是在WHERE子句中
'WHERE c.name <> ? ';
只要您選擇了1個國家/地區(只要我選擇了更多國家/地區),該方法就會奏效。 有誰知道我該如何解決?
非常感謝任何幫助!
提前謝謝了
嘗試使用NOT IN:
'WHERE c.name NOT IN ( ? ) ';
和參數:
$stmt = $this->_db->query($query, implode(',',$parameters));
你嘗試像
// it is reset the index
$param_array = array_values($parameters);
$qMarks = str_repeat('?,', count($param_array) - 1) . '?';
$query = 'SELECT g.* FROM game g ' .
'INNER JOIN game_country gc ON g.id = gc.gameId ' .
'INNER JOIN countries c ON c.id = gc.countryId ' .
'WHERE c.name NOT IN ($qMarks) ';
$stmt = $this->_db->query($query, $parameters);
注意: $ parameters應該是數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.