неопределенная ссылка на WinMain@16
или аналогичную «необычную» main()
ссылку на точку входа (особенно для visual-studio ).
Вы возможно, пропустили, чтобы выбрать правильный тип проекта с вашей реальной IDE. IDE может захотеть связать, например. Проекты приложений Windows для такой функции точки входа (как указано в недостающей ссылке выше) вместо обычной int main(int argc, char** argv);
.
Если ваша среда IDE поддерживает Plain Console Projects , вы может захотеть выбрать этот тип проекта вместо проекта приложения Windows.
Здесь case1 и case2 обрабатываются более подробно из реальный мир проблема.
Ответы на ваши первые три вопроса: да, да и нет.
Когда строка 'text'
преобразуется в число, она становится значением 0
.
Документация, описывающая преобразование типов, здесь здесь .
Для вашего запроса:
SELECT table.*
FROM table
WHERE id='text';
Правило зафиксировано в этой выдержке из документации :
Во всех остальных случаях аргументы сравниваются как числа с плавающей запятой (реальные).
blockquote>Другими словами, это фактически эквивалентно:
WHERE id = 0.0
Как и любая СУБД, она делает неявное преобразование.
Для другого типа, согласно документации MySQL, вам нужно использовать функцию convert / cast http: //dev.mysql. com / doc / refman / 5.0 / en / cast-functions.html
Вот пример из SO: Преобразование текста в число в запросе MySQL
MySQL по умолчанию обрабатывает 1 и «1» одинаково, но вы можете изменить это, установив поведение MySQL в режим Strict.
set @@GLOBAL.sql_mode = "STRICT_ALL_TABLES";
set @@SESSION.sql_mode = "STRICT_ALL_TABLES";
или вы можете установить эти переменные в файле my.cnf быть постоянным в sql_mode = ''
. Таким образом MySQL будет вызывать ошибку, если используется неправильный тип. Прочтите http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html для более подробной информации