我正在制作一个与全球,地区和国家分开的记分牌。我得到了全球和国家的工作。这是我的代码来获取每个国家/地区的数字:
$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)。所以基本上只与国家sql相同WHERE countrycode = :CountryCode
是一系列国家。
我该怎么做?
答案 0 :(得分:1)
获取相同的字符串,而不转换为数组,并在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
那就是它。