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名。我知道这是可行的。非常感谢你!!