2016-11-14 68 views
-3

我已從此查詢中刪除'age_range'SQL查詢INSERT列計數錯誤

INSERT INTO `filters` (`id`, `user_id`, `profession_preference`, `country`, `city`, `order_by`, `profession_orientation`, `age_range`, `distance_range`, `location_dating`) VALUES 
(9, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(10, 12, 3, 'Egypt', '', 2, 1, '', '', 0), 
(11, 19, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(13, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(14, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(15, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(25, 121, 3, 'All Countries', '', 3, 1, '18,23', '0,500 ', 0), 
(26, 316, 3, 'United States', '', 3, 1, '17,25', '0,500', 0); 

我再次執行收到此錯誤:

MySQL said: Documentation

#1136 - Column count doesn't match value count at row 1

+0

你對錯誤信息的解釋是什麼? –

+2

您試圖將10個值插入9列。 10不匹配9. – David

+0

我已經更新了我的問題,你能幫我確定刪除哪個值嗎? – agis

回答

1

您的INSERT語句中定義的9列,並且您試圖插入10個值。您需要添加另一個列定義或從您的值中刪除。

+0

我怎麼知道哪一個要刪除或哪個是額外的? – agis

+1

@agis:刪除不想插入的內容。我們不知道你的價值觀是什麼。 – David

+0

我已更新我的問題,現在可以查看它嗎? – agis

0

由於文件說

"Column count doesn't match value count"

您指定9列(iduser_idprofession_preferencecountrycityorder_byprofession_orientationdistance_rangelocation_dating)在你插入語句 和您要插入10值。

你要刪除一個值,或添加另一列

+0

我怎麼知道哪一個刪除或哪一個是額外的? – agis

+0

我已經更新了我的問題,你能幫我確定我需要刪除哪個值嗎? – agis

+0

他們匹配,你應該有錯誤信息 – SamHecquet

1

enter image description here

根據規則列名定義和提供價值數應該是一樣的。在你的情況下一個額外的列值。

+0

我已經更新了我的問題,你能幫我確定哪個值要刪除? – agis

2

插入記錄時,它會按照逗號分隔的位置將VALUES列表中的值與列列表中的列匹配。所以,這個插入語句:

INSERT INTO `foo` (`A`, `B`, `C`) 
VALUES ('valueA', 'valueB', 'valueC') 

它會插入到valueAAvalueB成列B等,因爲它們匹配相應的清單位置。如果從列列表中刪除B獨自離開VALUES,它不會試圖插入valueAA列,但valueBC列,因爲他們現在的匹配值的位置,但它不會知道,因爲有什麼用valueC做現在比列更多的值,所以既然您從第二個位置移除了列,您還需要從第二個位置移除該值。

因此,回到您的查詢中,您需要確定列列表中佔據哪個位置age_range,並從values列表中的相同位置刪除值。

這有道理嗎?

+0

我認爲這是有道理的,但是我會問另外一個問題,以便更清楚我做了什麼,我期待什麼以及我得到什麼錯誤。 – agis

0

之前列刪除這樣的腳本,將工作

CREATE TABLE filters (id INT, user_id INT, profession_preference INT, country VARCHAR(50), city VARCHAR(50), order_by INT, profession_orientation INT, age_range VARCHAR(50), distance_range VARCHAR(50), location_dating INT); 

INSERT INTO filters (id, user_id, profession_preference, country, city, order_by, profession_orientation, age_range, distance_range, location_dating) VALUES 
(9, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(10, 12, 3, 'Egypt', '', 2, 1, '', '', 0), 
(11, 19, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(13, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(14, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(15, 20, 3, 'All Countries', '', 2, 1, '16,100', '0,500', 0), 
(25, 121, 3, 'All Countries', '', 3, 1, '18,23', '0,500 ', 0), 
(26, 316, 3, 'United States', '', 3, 1, '17,25', '0,500', 0); 

現在,因爲你刪除AGE_RANGE列,下面的腳本將工作:

INSERT INTO filters (id, user_id, profession_preference, country, city, order_by, profession_orientation, distance_range, location_dating) VALUES 
(9, 20, 3, 'All Countries', '', 2, 1, '0,500', 0), 
(10, 12, 3, 'Egypt', '', 2, 1, '', 0), 
(11, 19, 3, 'All Countries', '', 2, 1, '0,500', 0), 
(13, 20, 3, 'All Countries', '', 2, 1, '0,500', 0), 
(14, 20, 3, 'All Countries', '', 2, 1, '0,500', 0), 
(15, 20, 3, 'All Countries', '', 2, 1, '0,500', 0), 
(25, 121, 3, 'All Countries', '', 3, 1, '0,500', 0), 
(26, 316, 3, 'United States', '', 3, 1, '0,500', 0); 

我從插入腳本文件刪除第三的最後一列。

希望這會有所幫助!