Ссылка на int как на строку в запросе mysql

#mysql #database

#mysql #База данных

Вопрос:

Во время работы с базой данных MySQL я выполнил несколько запросов, которые меня удивили!
Предположим, что небольшая таблица с идентификатором as int и именем as 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();
  

И это действительно работало совершенно правильно, так что не имеет значения, передается ли идентификатор в базу данных как int или даже как string , что происходит, может кто-нибудь, пожалуйста, объясните мне?

Ответ №1:

MySQL — это база данных типа «делай то, что я имею в виду», и она автоматически преобразует типы по мере необходимости.

В большинстве случаев это хорошо, это означает, что вам не нужно возиться с приведением, но иногда это может привести к двусмысленности и странным ошибкам, когда он делает что-то без вашего ведома, например, усекает данные молча.

Комментарии:

1. Вау, действительно великолепно! так что не беспокойтесь о преобразовании всех идентификаторов в моем коде из string в int 🙂