需要在mysql

时间:2015-12-07 05:31:59

标签: php mysql

我正在尝试获取最大值和最小值,并将那些在php中分配为单独的变量并选择其中的所有其他行并将其作为另一个变量,然后使用检索到的信息填充下拉列表。

SELECT z_depth AS z_depth FROM elements
UNION
SELECT MAX(z_depth) AS MAX FROM elements
UNION
SELECT MIN(z_depth) AS MIN FROM elements

问题是它没有将z_depth AS z_depthMAX作为MAX等返回,它只显示为z_depth。如果有人不介意指出解决方案或可能更好的方法,我会非常感激。

3 个答案:

答案 0 :(得分:1)

一个简单的SQL查询:

SELECT z_depth
FROM elements
ORDER BY z_depth ASC

将其读入名为$results的数组中,然后执行:

$min = min($results);
$max = max($results);

那应该能得到你想要的东西。

答案 1 :(得分:0)

您可以在查询中创建第二列,以识别记录的性质(&#34; max&#34;,&#34; min&#34;,&#34;其他&#34;):< / p>

SELECT z_depth AS z_depth,  'Other' AS Type FROM elements
UNION
SELECT MAX(z_depth) AS MAX, 'Max'   AS Type FROM elements
UNION
SELECT MIN(z_depth) AS MIN, 'Min'   AS Type FROM elements

你只是做了一系列UNION个盲目查询的麻烦就是你最终得到的是一个列而不知道任何特定记录的位置。

答案 2 :(得分:0)

你在尝试这样的事吗

SELECT z_depth FROM elements WHERE z_depth&gt; =(SELECT MIN(z_depth)FROM elements)&amp;&amp; z_depth&lt; =(SELECT MAX(z_depth)FROM elements)ORDER BY z_depth ASC

然后,您始终可以将第一行和最后一行保存为min和max