Всегда заключайте в кавычки значения, если столбец имеет тип 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 в виде строк?
Это стандарт поведения в разных СУБД?
Спасибо!