mysql - 在 mysql 查询中将 int 引用为字符串

标签 mysql database

在使用 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/

相关文章:

mysql - 查询 mysql 时的撇号

sql - 查询 varchar(1) 列与位标志和日期时间比较是否存在性能问题?

mysql - 员工培训分析查询的条件查询

mysql - 登录mysql?

java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

mysql - 数据库结构——mySQL 是正确的选择吗?

mysql - 在sql上连接3个表并检查条件

mysql - 连接两个 select 语句的结果

mysql - Xampp无法连接到MYsql数据库或ProFTPD

python - Appengine - 从标准数据库升级到导航台 - ReferenceProperties