我有一个查询来自INFORMATION_SCHEMA的返回列。 然后我创建一个数组,在foreach循环中使用该数组来创建另一个数组。
我遇到的问题是最终数组从位置0开始,产生列SeqID0但第一列是SeqID1:
Array ( [0] => SeqID0 [1] => SeqID1 [2] => SeqID2 [3] => SeqID3 [4] => SeqID4 [5] => SeqID5 [6] => SeqID6 [7] => SeqID7 [8] => SeqID8 [9] => SeqID9 [10] => SeqID10 [11] => SeqID11 [12] => SeqID12 [13] => SeqID13 [14] => SeqID14 [15] => SeqID15 [16] => SeqID16 [17] => SeqID17 [18] => SeqID18 [19] => SeqID19 [20] => SeqID20 [21] => SeqID21 [22] => SeqID22 [23] => SeqID23 [24] => SeqID24 [25] => SeqID25 [26] => SeqID26 [27] => SeqID27 [28] => SeqID28 [29] => SeqID29 [30] => SeqID30 [31] => SeqID31 [32] => SeqID32 [33] => SeqID33 [34] => SeqID34 [35] => SeqID35 [36] => SeqID36 [37] => SeqID37 [38] => SeqID38 [39] => SeqID39 [40] => SeqID40 [41] => SeqID41 [42] => SeqID42 [43] => SeqID43 [44] => SeqID44 [45] => SeqID45 [46] => SeqID46 )
如何使数组从SeqID1开始。
这是我的代码;
$strSQLCol = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME= 'NXLHR_Active' AND COLUMN_NAME LIKE 'SeqID%'";
$rsCol = mysqli_query($link,$strSQLCol);
$SeqList = array();
do {
$SeqList[] = $row;
} while($row = $rsCol->fetch_assoc());
$SeqIDArray = array();
foreach($SeqList as $key => $value) {
$SeqIDArray[] = 'SeqID' . $key;
}
非常感谢你的时间。
答案 0 :(得分:1)
这里是您改进的代码。请注意我在DECLARE @MyList TABLE (Value NVARCHAR(50))
INSERT INTO @MyList VALUES ('Data1')
INSERT INTO @MyList VALUES ('Data2')
INSERT INTO @MyList VALUES ('Data3')
INSERT INTO @MyList VALUES ('Data4')
INSERT INTO @MyList VALUES ('Data5')
INSERT INTO @MyList VALUES ('Data6')
INSERT INTO @MyList VALUES ('Data7')
INSERT INTO @MyList VALUES ('Data8')
DECLARE @COUNTER INT = 0;
DECLARE @MAX INT = (SELECT COUNT(*) FROM @MyList)
DECLARE @VALUE VARCHAR(50);
WHILE @COUNTER < @MAX
BEGIN
SET @VALUE = (SELECT VALUE FROM
(SELECT (ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) [index] , Value from @MyList) R
ORDER BY R.[index] OFFSET @COUNTER
ROWS FETCH NEXT 1 ROWS ONLY);
PRINT @VALUE
SET @COUNTER = @COUNTER + 1
END
中添加了一个条件:
foreach