繁体   English   中英

从数据库中选择最少的数字

[英]Select the least number from database

我想您可以说一个就运行两个查询。 我正在尝试建立一个评分系统,每个人都有两次机会。 最少的是最好的。 我需要做的是让php查询为每个人选择最小的数字,然后显示具有3个最小数字的人的3个名字。

我猜我需要使用这样的查询来获取每个人的最小数量:

$sql = mysql_query("SELECT LEAST(MIN(timeone),MIN(timetwo))FROM table1");

(也许该代码也不正确)

但是在此之后,我很困惑如何使它显示与3个最小数字相关的名称。

所有数据都在同一表中

这样的例子

name    number1    number2
1        10           8
2         4           7
3         12          11
4         3            17

因此它将确定名称1的最小数字是8,名称2是4,名称3是11和名称4是3。

然后,它将确定三个最小的三个分别是名称1,名称2,名称4并列出它们。

因此,您可以使用如下顺序和限制来实现此目的:

SELECT name,LEAST(number1,number2) as Smaller FROM table1
ORDER BY smaller 
LIMIT 3;

或者只是为了获得他们的名字:

SELECT name FROM table1
ORDER BY LEAST(number1,number2) 
LIMIT 3;

我不知道这是否是最佳解决方案,因为我本人不是dba,但您可以使用:

SELECT min(col_alias) AS min_value FROM (

    SELECT col1 AS col_alias FROM yourtable
    UNION ALL
    SELECT col2 FROM yourtable

) vw

另一个(更好的IMO)解决方案是从yourtable中选择所有分钟,然后使用php中的min函数:

$qry = mysql_query("SELECT min(col1) as minCol1, min(col2) AS minCol2 FROM yourtable");
$rs = mysql_fetch_assoc($qry);
$minNumber = min($rs);

注意:不推荐使用mysql_*函数。 或者,您可以使用mysqli_*函数或迁移到PDO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM