![](/img/trans.png)
[英]MySQL Injection - Error 1222 on union select when column numbers are equal
[英]Mysql error code 1222 with a single column selected?
有人可以解釋為什么在運行此查詢后出現錯誤代碼1222(使用的SELECT語句具有不同的列數)嗎?
INSERT IGNORE INTO table1(id1)
SELECT id2 FROM table2;
很明顯,列數是相同的,所以真正的問題必須在其他地方。 但是哪里? 字段完全相同:
`id2` int(11) NOT NULL COMMENT 'blabla'
唯一的區別是數據庫引擎(表2上的MyISAM,表1上的InnoDB),但是它不能被鏈接,因為如果我在沒有這個的INSERT / SELECT中添加更多的列,它的作用就像是一種魅力。
有任何想法嗎? 謝謝。
正如Tim所提到的,請為我們提供表方案和更多信息,因為上面沒有顯示錯誤。 例如:
INSERT IGNORE INTO test_cachetags (tag, invalidations) SELECT tag, invalidations FROM cachetags;
該查詢有效,其中TAG為varchar(255),無效為整數。
好的,我終於找到了問題所在:觸發器。 基本上,我在某些時候擁有的變量數與列數不匹配。 ( https://dev.mysql.com/doc/refman/5.5/en/stored-program-variables.html )。
現在,我找到了原因,這似乎非常明顯,但是老實說,MySQL可能更明確。 並不是我在后台觸發了一個和/或一個簡單的查詢(實際上,這個查詢特別復雜)。
因為在該字段上發生記錄錯誤,因為那是我忘記聲明的錯誤。
謝謝你的時間家伙。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.