1

我有数组 $total,如 pint_r 所示:

Array
(
[0] => 1,2,3,4,5,6,7,8,9,10,11,12,1
[1] => 13,14,15,16,17,18,19,20,21,22,23,24,1
[2] => 25,26,27,28,29,30,31,32,33,34,35,36,1
[3] => 37,38,39,40,41,42,43,44,45,46,47,48,1
[4] => 49,50,51,52,53,54,55,56,57,58,59,60,1
[5] => 61,62,63,64,65,66,67,68,69,70,71,72,1
[6] => 73,74,75,76,77,78,79,80,81,82,83,84,1
[7] => 85,86,87,88,89,90,91,92,93,94,95,96,1
[8] => 97,98,99,100,101,102,103,104,105,106,107,108,1
[9] => 109,110,111,112,113,114,115,116,117,118,119,120,1
[10] => 121,122,123,124,125,126,127,128,129,130,131,132,1
[11] => 133,134,135,136,137,138,139,140,141,142,143,144,1
[12] => 145,146,147,148,149,150,151,152,153,154,155,156,1
[13] => 157,158,159,160,161,162,163,164,165,166,167,168,1
[14] => 169,170,171,172,173,174,175,176,177,178,179,180,1
[15] => 181,182,183,184,185,186,187,188,189,190,191,192,1
[16] => 193,194,195,196,197,198,199,200,201,202,203,204,1
[17] => 205,206,207,208,209,210,211,212,213,214,215,216,1
[18] => 217,218,219,220,221,222,223,224,225,226,227,228,1
[19] => 229,230,231,232,233,234,235,236,237,238,239,240,1
[20] => 241,242,243,244,245,246,247,248,249,250,251,252,1
[21] => 253,254,255,256,257,258,259,260,261,262,263,264,1
[22] => 265,266,267,268,269,270,271,272,273,274,275,276,1
[23] => 277,278,279,280,281,282,283,284,285,286,287,288,1
)

我的目标是进行 SQL 插入查询,将这些数字中的每一个输入到 MYSQL 表中,每个数字 2 一行。以在 PortNUMbers 列中标记为 1-288 的 288 行的表结尾(请忽略尾随的 1,当我运行 sort() 时,它似乎已经标记为顺风顺水)所以这是我的 SQL:

$sqlinsert='
    INSERT INTO '.$tbl_name.'
    (PortNumber) VALUES (1),(2),(3)etc..';

非常简单,我只是将其分解,然后将其放入 while 循环中,然后为查询内爆,但是我需要以相当奇怪的顺序插入值,如下所示:

(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(145),(146),(147),(148),(149),(150),(151),(152),(153),(154),(155),(156)

依此类推,遵循相同的模式,直到结束。有人对我如何实现这一目标有任何想法吗?

4

1 回答 1

2

SQL 表没有隐式顺序。您不应该依赖插入值的顺序是查询它们时返回它们的顺序。您必须使用ORDER BY才能获得可靠的查询结果顺序。

如果您需要记录输入数据的顺序,则需要另一列。

例如:

CREATE TABLE TblName (
  id INT AUTO_INCREMENT PRIMARY KEY,
  PortNUmber INT NOT NULL
);

INSERT INTO TblName (PortNumber) VALUES
(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12);
...etc...

自动增量将保留您插入值的顺序,然后您可以根据需要以相当奇怪的顺序而不是数字顺序插入值。

于 2013-01-22T22:59:25.613 回答