2014-08-06 6 views
0

У меня есть таблица, как на ниже:MySQL показывает нулевые результаты, когда они есть?

id | description | db_url | form_url | user | projectid 

2 | nailbar | TSF/nailbar/index.php | TSF/nailbar/upload.php | test_user | 2 

1 | jewellery | TSF/jewellery/index.php | TSF/jewellery/upload.php | test_user | 1 

1 | jewellery | TSF/jewellery/index.php | TSF/jewellery/upload.php | test_user2 | 1 

3 | locker | TSF/locker/index.php | TSF/locker/upload.php | test_user | 3 

Когда я исполняю ниже ничего запрос не приходит:

SELECT * 
FROM projects 
JOIN member_projects ON member_projects.projectid = projects.id 
WHERE user = 'test_user' 
AND db_url = 'TSF/locker/index.php' 
LIMIT 0 , 30 

Там, безусловно, является матч, так что я не могу понять, почему он идет вверх с нулевыми результатами?

+0

ваша таблица таблица проектов или member_projects? и есть данные в другом? – Olli

+0

Предел 0 ... http://dev.mysql.com/doc/refman/5.0/en/limit-optimization.html гласит: «LIMIT 0 быстро возвращает пустой набор». или это может быть Соединение объединяет данные. Хотя я не уверен, что, 30 переопределяет предел 0. Также существует ли ID 3 в обеих проектах и ​​в таблицах member_projects? если не объединение может удалить записи. – xQbert

ответ

1

Это обычно происходит, когда в начале или конце строк присутствуют дополнительные символы. Наиболее вероятным виновником является URL. Вы можете попробовать:

SELECT * 
FROM projects p JOIN 
    member_projects mp 
    ON mp.projectid = p.id 
WHERE user = 'test_user' AND 
     trim(db_url) = 'TSF/locker/index.php' 
LIMIT 0 , 30; 

Вы также можете посмотреть на «содержит», а не полных матчей, если выше не работает:

SELECT * 
FROM projects p JOIN 
    member_projects mp 
    ON mp.projectid = p.id 
WHERE user = 'test_user' AND 
     db_url like '%TSF/locker/index.php%' 
LIMIT 0 , 30; 
+0

Джекпот! второй работал, большое вам спасибо! Я приму ответ, как только смогу. –

Смежные вопросы