Всегда заключайте в кавычки значения, если столбец имеет тип string (char, varchar, ...), иначе вы получите неожиданные результаты!

мер - я создаю базу данных и таблицу из cli и вставляю некоторые данные:

CREATE DATABASE testdb CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
USE testdb;
CREATE TABLE test (id INT, str VARCHAR(100)) TYPE=innodb CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
INSERT INTO test VALUES (9, 'some string');

Теперь я могу сделать это, и эти примеры работают (поэтому - кавычки не влияют ни на что, кажется):

SELECT * FROM test WHERE id = '9';
INSERT INTO test VALUES ('11', 'some string');

Итак - в этих примерах я выбрал строкустрока что на самом деле хранится как INT в MySQL, а затем я вставилстрока в столбце, который INT.

Я не совсем понимаю, почему это работает так, как работает здесь. Почему строка может быть вставлена ​​в столбец INT?

Могу ли я вставить все типы данных Mysql в виде строк?

Это стандарт поведения в разных СУБД?

Спасибо!

Ответы на вопрос(8)

Ваш ответ на вопрос