Actually, numbers represent IDanswers (from tbl_answers table). The range may be from 1 to .......
If visitor checks three of five checkboxes, means, for example, that visitor checks 123,124,126 out of 123,124,125,126,127, means first, second and fourth checkbox. In table tbl_responses there will be 123,124,126 as string (CSV), and that's to be linked with tbl_answers, cause the tbl_answers has to be filtered using the string (CSV).
IDquestion (foreign, to tbl_question)
result (string based on CSV, may contain few IDanswers, because visitor may choose few checkboxes, for example it can be "4,6,7")
1_________Which OS do you use?
2_________Which databases do you use?
9________2_________No, I do not use databases
Well, my idea about the (fact) difference was not about the range of numbers any type can represent, but about the place inside the sql statement - those three types are numbers, and sql statement WHERE IN refers to scope.