可能重複:
Moving a row from one table to another (Insert value list does not match column list)MySQL的插入:: MAX(FIELD)+1 - 如果空
對於我的刀片之一,我有以下幾點:(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以1比最高值固定票價ID更大,如果是空的FixedFareId設置爲1
不知道究竟出了什麼問題的代碼但我可以看到我得到以下響應它不是拿起了FixedFareId什麼:
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數據庫:
所以第一次插入nee DS是:
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。
你能發表該查詢的結果,'DESC tblfixedfares'嗎? –