簡體   English   中英

SQL SELECT除參數外的所有內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM