numbers/ranks 范围内的用户计数
User count between a rang of numbers/ranks
我想要 return x 数量的 members/users,排名为 1-10、11-24,另一个排名为 25-35。两个用户都继续出现在 NCO 类别中。即使一个用户排名 27 而另一个用户排名 13?我试过弄乱这些符号,将其更改为 < 或 > 或 == 但仍然 运行 没有用户出现,两个用户都出现了。
$stats['afenlisted'] = $pdo->query('SELECT count(*) from personnel WHERE rank >= "25" AND branch = "Air Force" ')->fetchColumn();
$stats['afnco'] = $pdo->query('SELECT count(*) from personnel WHERE rank >= "11" <= "24" AND branch = "Air Force" ')->fetchColumn();
感谢Aynber, AbraCadaver, and Honk der Hase。帮助我理解我的错误并让我解决它。因此,如果其他人 运行 遇到此问题,解决方法是:
$stats['afenlisted'] = $pdo->query('SELECT count(*) from personnel WHERE rank BETWEEN 25 AND 28 AND branch = "Air Force" ')->fetchColumn();
#For your own code something like this:
$stats['Whatever you want to call it'] = $pdo->query('SELECT count(*) FROM your table name WHERE column BETWEEN x AND y AND if you have another column your trying to get from ')->fetchColumn();
将 x 和 y 更改为您想要的任何数字,如果您没有其他列,您正在尝试获取更多内容,然后只需删除 y(您的数字值)之后的 AND
再次感谢那些帮助我理解错误并让我了解更多 SQL 知识的人。
首先,您的查询有误
$stats['afnco'] = $pdo->query('SELECT count(*) from personnel WHERE rank >= "11" <= "24" AND branch = "Air Force" ')->fetchColumn();
正如许多人所说,您有不同的方法来完成范围检查。我会展示其中的 3 个...
第一个:
SELECT .. FROM .. WHERE rank >= 11 AND rank <= 24
这将是最兼容的方式(对于 SQL 查询)进行检查,可能受到任何数据库的支持,因为它只使用基本的比较操作。
第二个:
SELECT .. FROM .. WHERE rank BETWEEN 11 and 24
虽然现在得到广泛支持,但 BETWEEN 是一个特殊的关键字,可能并非所有数据库系统都知道。
第三名:
SELECT .. FROM .. WHERE rank IN(11,12,13,14,15,16,17,18,19,20,21,22,22,23,24)
虽然这完全有效,但它更适合范围有间隙的情况。 (比如“11 到 24,但 17 除外”)
我想要 return x 数量的 members/users,排名为 1-10、11-24,另一个排名为 25-35。两个用户都继续出现在 NCO 类别中。即使一个用户排名 27 而另一个用户排名 13?我试过弄乱这些符号,将其更改为 < 或 > 或 == 但仍然 运行 没有用户出现,两个用户都出现了。
$stats['afenlisted'] = $pdo->query('SELECT count(*) from personnel WHERE rank >= "25" AND branch = "Air Force" ')->fetchColumn();
$stats['afnco'] = $pdo->query('SELECT count(*) from personnel WHERE rank >= "11" <= "24" AND branch = "Air Force" ')->fetchColumn();
感谢Aynber, AbraCadaver, and Honk der Hase。帮助我理解我的错误并让我解决它。因此,如果其他人 运行 遇到此问题,解决方法是:
$stats['afenlisted'] = $pdo->query('SELECT count(*) from personnel WHERE rank BETWEEN 25 AND 28 AND branch = "Air Force" ')->fetchColumn();
#For your own code something like this:
$stats['Whatever you want to call it'] = $pdo->query('SELECT count(*) FROM your table name WHERE column BETWEEN x AND y AND if you have another column your trying to get from ')->fetchColumn();
将 x 和 y 更改为您想要的任何数字,如果您没有其他列,您正在尝试获取更多内容,然后只需删除 y(您的数字值)之后的 AND
再次感谢那些帮助我理解错误并让我了解更多 SQL 知识的人。
首先,您的查询有误
$stats['afnco'] = $pdo->query('SELECT count(*) from personnel WHERE rank >= "11" <= "24" AND branch = "Air Force" ')->fetchColumn();
正如许多人所说,您有不同的方法来完成范围检查。我会展示其中的 3 个...
第一个:
SELECT .. FROM .. WHERE rank >= 11 AND rank <= 24
这将是最兼容的方式(对于 SQL 查询)进行检查,可能受到任何数据库的支持,因为它只使用基本的比较操作。
第二个:
SELECT .. FROM .. WHERE rank BETWEEN 11 and 24
虽然现在得到广泛支持,但 BETWEEN 是一个特殊的关键字,可能并非所有数据库系统都知道。
第三名:
SELECT .. FROM .. WHERE rank IN(11,12,13,14,15,16,17,18,19,20,21,22,22,23,24)
虽然这完全有效,但它更适合范围有间隙的情况。 (比如“11 到 24,但 17 除外”)