Создать таблицу: CREATE TABLE tests (id int AUTO_INCREMENT, foo varchar(255), PRIMARY KEY (id));
Вставить записи: INSERT INTO tests (foo) VALUES ('36'), ('36A'), ('36B'), ('36C'), ('baz');
Выполнить: SELECT * FROM tests where foo in ('36');
Результат:
+----+------+
| id | foo |
+----+------+
| 1 | 36 |
+----+------+
Тогда run: SELECT * FROM tests where foo in (36);
Результат:
+----+------+
| id | foo |
+----+------+
| 1 | 36 |
| 2 | 36A |
| 3 | 36B |
| 4 | 36C |
+----+------+
Вопрос в том, почему передача 36
(как целое число) не возвращает один и тот же столбец как передачу '36'
(как строка) делает?
Кроме того, передача 3
приводит к пустому набору. Поэтому я не совсем понимаю логику c.