Я нашел кое-что в MySQL, что меня очень удивило. Я создал таблицу и вставил в нее записи, как показано ниже,
CREATE TABLE `test` (
`ID` int,
`NAME` varchar(100)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO test VALUES (1,'a'),(2,'b'),(3,'c');
Теперь я запускаю два запроса SELECT против этого, как показано ниже:
select * from test where id;
select * from test where name;
Я заметил, что эти запросы не вызывают синтаксических ошибок, но запрос выбора «первый» возвращает результат как select * from test;
, а «второй» не возвращает ничего. Это означает, что если предложение where содержит столбец «integer», я получаю набор результатов, в то время как я не получаю ничего, если предложение where содержит столбец «varchar».
Может ли кто-нибудь сказать мне, является ли это ошибкой или особенностью MySQL? Также объясните мне, почему это происходит.
Заранее спасибо!
0
для выполнения логического сравнения 02.01.2015