Php SQL在数据库中从数组中获取位置
我正在制作一个记分牌,它将全球、地区和国家分开。我在全球和国家工作。以下是我获取每个国家的数字的代码:Php SQL在数据库中从数组中获取位置,php,sql,database,Php,Sql,Database,我正在制作一个记分牌,它将全球、地区和国家分开。我在全球和国家工作。以下是我获取每个国家的数字的代码: $euCountries = array('AL', 'AD', 'AM', 'AT', 'BY', etc....); if (in_array($CountryCode, $euCountries)) { $region = 'EU'; } $countryRankSql = "SELECT name, FIND_IN_SET(xp, ( SELECT GROUP_C
$euCountries = array('AL', 'AD', 'AM', 'AT', 'BY', etc....);
if (in_array($CountryCode, $euCountries)) { $region = 'EU'; }
$countryRankSql = "SELECT name, FIND_IN_SET(xp, (
SELECT GROUP_CONCAT(xp ORDER BY xp DESC)
FROM users WHERE countrycode = :CountryCode ) ) AS rank
FROM users WHERE id = :id";
$countryRankGet = $db->prepare($countryRankSql);
$countryRankGet->execute(array(
':CountryCode' => $CountryCode,
':id' => $id,
));
$countryRank = $countryRankGet->fetch()['rank'];
现在我想做同样的事情,但是数组中的多个CountryCodes(例如$euCountries)在哪里。因此,基本上与country sql相同,仅在where countrycode=:countrycode
是一系列的国家
如何执行此操作?在不转换为数组的情况下,获取相同的字符串,并在select语句中使用它:
SELECT name, FIND_IN_SET(xp, (SELECT GROUP_CONCAT(xp ORDER BY xp DESC) FROM users WHERE countrycode in ($euCountries) ) ) AS rank FROM users WHERE id = :id
差不多就是这样。我可以把数组(“:euCountries”=>$euCountries,”)放进去吗;在我的执行线上?我不知道你为什么要这么做。SELECT语句只是一个字符串。而已经用引号括起来并用逗号删除的国家清单已经是正确的了。那有什么意义呢?