在使用 MySQL 数据库时,我做了一些让我惊讶的查询!
假设有一个 ID 为 int
且名称为 varchar
的小表,当我基于 ID 进行更新查询时(使用 C#):
MySqlCommand comm = new MySqlCommand("UPDATE database.table SET Name=@name WHERE id=@id", sqlconn);
comm.Parameters.AddWithValue("@name", textbox1.text);
comm.Parameters.AddWithValue("@id", textbox2.text);
comm.ExecuteNonQuery();
sqlconn.Close();
这确实完全正确,所以如果 ID 作为 int
或什至作为 string
传递给数据库并不重要,请有人解释一下这是怎么回事给我?
最佳答案
MySQL 是一种“按我的意思去做”的数据库,会根据需要自动转换类型。
大多数时候这是一件好事,这意味着您不必为转换而大惊小怪,但有时当它在您不知情的情况下执行某些操作(例如静默截断数据)时,可能会导致歧义和奇怪的错误。
关于mysql - 在 mysql 查询中将 int 引用为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24370222/