Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取在SQL Server查询中选择的最后一列的id?_Php_Sql Server - Fatal编程技术网

Php 如何获取在SQL Server查询中选择的最后一列的id?

Php 如何获取在SQL Server查询中选择的最后一列的id?,php,sql-server,Php,Sql Server,表的示例数据库,员工: id market firstName 1 1 John 2 2 James 3 1 Sally 4 1 Mary 5 2 Susan 如果我写下面的查询 SELECT firstName FROM employees WHERE market = 1 我将获得以下数组: array("

表的示例数据库,员工:

id      market      firstName
1       1           John
2       2           James
3       1           Sally
4       1           Mary
5       2           Susan
如果我写下面的查询

SELECT firstName 
FROM employees 
WHERE market = 1
我将获得以下数组:

array("John", "Sally", "Mary")
我正在使用odbc连接到sql server,然后使用odbc_fetch_数组检索结果。但是,我还希望提取最后一个
名字的
id
,例如:

array("John", "Sally", "Mary", 4)
我已经知道如何在两个查询中实现这一点,但我希望提高性能,如何在一个查询中实现这一点

如果有必要,我将使用odbc连接到sql server


谢谢。

因为不能在数组中混合数据类型,所以我假设最后一个id作为字符串返回是可以的

在这种情况下,可以使用UNION ALL:

SELECT firstName 
FROM employees 
WHERE market = 1
UNION ALL 
SELECT CAST(MAX(id) AS varchar(31))
FROM employees 
WHERE market = 1

因为不能在数组中混合数据类型,所以我假设最后一个id作为字符串返回是可以的

在这种情况下,可以使用UNION ALL:

SELECT firstName 
FROM employees 
WHERE market = 1
UNION ALL 
SELECT CAST(MAX(id) AS varchar(31))
FROM employees 
WHERE market = 1

我认为,如果您使用第二个查询来获取该值,将非常容易。它是可行的还是只需要一个查询?
选择id,firstName FROM employees,其中market=1
不会真正影响查询的性能。是,事实上,我同意@StackExchangerIf,如果你展示了你用来构建该数组的实际PHP代码,那么有人也会帮助你,我认为如果你使用第二个查询来获得该值,这将非常容易。它是可行的还是只需要一个查询?
选择id,firstName FROM employees WHERE market=1
不会真正影响查询的性能。是的,事实上我同意@stackexchangeri如果您显示用于构建该数组的实际PHP代码,也会有人帮助您,谢谢您的帮助。此语句不返回我拉取的最后一个人的id,而是返回数据库中最后一列的id。因此,在本例中,它将返回数组(“John”、“Sally”、“Mary”、“5”),我希望它返回数组(“John”、“Sally”、“Mary”、“4”)。是否包含最后一个
,其中market=1
?如果你这样做了,你得到的结果应该是不可能的。事实上,我真正的查询中有一个前200名,我忘记了第二次输入前200名。我知道这是可行的。非常感谢你!!谢谢你的帮助。此语句不返回我拉取的最后一个人的id,而是返回数据库中最后一列的id。因此,在本例中,它将返回数组(“John”、“Sally”、“Mary”、“5”),我希望它返回数组(“John”、“Sally”、“Mary”、“4”)。是否包含最后一个
,其中market=1
?如果你这样做了,你得到的结果应该是不可能的。事实上,我真正的查询中有一个前200名,我忘记了第二次输入前200名。我知道这是可行的。非常感谢你!!