繁体   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