2013-08-17 3 views
0

Я не могу это объяснить. Какую основную вещь я упускаю из виду, почему это не работает? У меня есть простая таблица только одна записи (для целей тестирования) в данный момент:Простой запрос выбора, возвращающий пустой набор результатов?

TABLE votes 
vote_id | user_id | image_id | vote_type 
---------------------------------------- 
43  | 8  | 5  | 1 

Где vote_id является первичным ключом, user_id & image_id являются внешними ключами, и vote_type является логическим

Это смешно простой запрос на выборку с 2 WHERE статей не будет даже возвращать одну запись в таблице:

SELECT * FROM `votes` WHERE 'user_id' = 8 AND 'image_id' = 5; 

даже 1 WHERE пункт сделать esn't ничего возвращать:

SELECT * FROM `votes` WHERE 'vote_type' = 1; 

Тем не менее, ОТБОРНОЕ без каких-либо условий, действительно возвращает 1 результат:

SELECT * FROM `votes`; 

Примечание, я не получаю никаких ошибок, я просто получить сказал, что «MySQL возвращает пустой набор результатов ". Что тут происходит?

+0

Могут ли быть ваши столбцы не целочисленного типа? – Axel

+0

Убедитесь, что поля являются строками, если они есть, используйте кавычки в запросе. 'SELECT * FROM 'votes' WHERE 'user_id' = '8' AND 'image_id' = '5';' – PiLHA

ответ

2

Вам нужны обратные кавычки вместо одиночных кавычек. Попытайтесь:

SELECT * FROM `votes` WHERE `user_id` = 8 AND `image_id` = 5; 

Одиночные кавычки используются для строковых констант. Таким образом, строка «user_id» не равна целому числу «8».

+0

Да, это работает. Спасибо! – ReactingToAngularVues