gpt4 book ai didi

php - MySQL Insert::MAX(FIELD)+1 - 如果为空

转载 作者:行者123 更新时间:2023-11-29 14:10:16 24 4
gpt4 key购买 nike

Possible Duplicate:
Moving a row from one table to another (Insert value list does not match column list)

对于我的插入内容之一,我有以下内容:(PDO/MySQL)

   $this->sql = "INSERT INTO tblfixedfares NULL, SELECT NULL, IFNULL(MAX(FixedFareId), 0) + 1, '$fieldFrompc', '$fieldTopc', '$fieldDay', '1', 'Car') FROM tblfixedfares;
INSERT INTO tblfixedfares NULL, SELECT NULL, IFNULL(MAX(FixedFareId), 0) + 1, '$fieldFrompc', '$fieldTopc', '$fieldNight', '2', 'Car') FROM tblfixedfares;";

基本上,这不起作用,因为它没有插入 FixedFareId 的值.

我想要做的是将FixedFareId设置为比最高固定票价id值大1,如果为空则将FixedFareId设置为1。

不确定代码到底有什么问题,但我可以看到它没有为 FixFareId 获取任何内容,因为我得到以下响应:

Error: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1SQL

INSERT INTO tblfixedfares VALUES (NULL, 'le675', 'le115', '11', '1', 'Car');
INSERT INTO tblfixedfares VALUES (NULL, 'le675', 'le115', '22', '2', 'Car');

基本上,在一个查询中会发生两次插入,如果数据库中没有任何内容,FixedFareId 需要为 1:

所以第一个插入需要是:

INSERT INTO tblfixedfares VALUES (NULL, **1**, 'le675', 'le115', '11', '1', 'Car');
INSERT INTO tblfixedfares VALUES (NULL, **1**, 'le675', 'le115', '22', '2', 'Car');

下一个插入内容是:

INSERT INTO tblfixedfares VALUES (NULL, **2**, 'le675', 'le115', '11', '1', 'Car');
INSERT INTO tblfixedfares VALUES (NULL, **2**, 'le675', 'le115', '22', '2', 'Car');

数据库如下:

id、FixedFareId、ShortPostcodeA、ShortPostcodeB、票价、DayHalf、VehicleSystemId

id是自增的,如果为null则fixedfareid需要为1,如果不为null则为fixedfareid的最大值+1。

最佳答案

像这样更改您的查询:

          INSERT INTO tblfixedfares (SELECT NULL, IFNULL(MAX(FixedFareId), 0) + 1, '$fieldFrompc', '$fieldTopc', '$fieldDay', '1', 'Car' FROM tblfixedfares);

关于php - MySQL Insert::MAX(FIELD)+1 - 如果为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13607596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com