我有一个表设置如下
ID COL1 COL2 COL3
----------------
10 200 n/a 125
11 150 130 n/a
12 100 300 200
13 500 n/a n/a
Run Code Online (Sandbox Code Playgroud)
除了 ID,所有列都是 TEXT。
使用 PHP 和 MySQL 我需要从 COL1、COL2、COL3 中选择最小的“数字”,在这种情况下它将是 100(从第 12 行,COL1)。
我试过这个:
$query = ("SELECT MIN(LEAST(COL1,COL2,COL3)) FROM rug AS 'query1'");
Run Code Online (Sandbox Code Playgroud)
但我认为 MIN(LEAST 和 AS 'query1' 部分有问题。我收到警告:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?谢谢!
我发现了两个错误。
1. SQL
您的查询适用于您的特定示例,但尝试在COL2or 中使用较小的数字COL3,然后您会发现它无法提供您要查找的结果。
试试这个:
SELECT LEAST(
MIN(COL1),
MIN(COL2),
MIN(COL3)
)
FROM yourtable;
Run Code Online (Sandbox Code Playgroud)
2. PHP
为了在 php 中使用 mysql 查询,请查看有关如何存档的手册,您的示例不是如何完成的。如果您的查询字符串存储在 中$SQL,则它可能如下所示:
/* querying... */
$result = mysql_query($SQL);
/* handling possible errors */
if (!$result) {
die('Invalid query: ' . mysql_error());
}
/* handling the response */
while ($row = mysql_fetch_assoc($result)) {
var_dump($row);
}
Run Code Online (Sandbox Code Playgroud)