Я работаю над сайтом знакомств, и благодаря отличным ответам мне удалось сделать этот запрос. Я полностью новичок 🙂
Проблема с этим запросом соединения заключается в том, что он, похоже, не удаляет повторяющиеся записи, и я не знаю, почему .
имя пользователя – это имя людей, которые присоединяются к сайту;
готовность – это то, что они желают сделать, часть их страницы профиля.
Например, если я ищу слово «обед» (как в следующем вопросе), запрос находит людей, у которых есть «обед» в своем имени пользователя или в профиле готовности .
Но иногда у кого-то есть слово «обед» в его имени пользователя и в его профиле готовности.
Как я могу удалить эти повторяющиеся строки?
Я использую этот запрос для кода навигации php.
Не могли бы вы помочь?
result = mysql_query(" (SELECT 1 as sort_col,username,pic0 FROM ".$table." WHERE username IS NOT NULL AND username LIKE '%lunch%') UNION (SELECT 2 as sort_col,username,pic0 FROM ".$table." WHERE username IS NOT NULL AND age BETWEEN '28' AND '45' AND willingness LIKE '%lunch%' ) ORDER BY sort_col LIMIT ".$offset.", ".$rowsperpage."");
Есть идеи?
Спасибо!
Обходной путь. Вы можете использовать:
SELECT username, pic0 FROM ".$table." WHERE ( username LIKE '%lunch%' ) OR ( username IS NOT NULL AND age BETWEEN 28 AND 45 AND willingness LIKE '%lunch%' ) ORDER BY ( username LIKE '%lunch%' ) DESC
Ваш sort_col
гарантирует, что строки между двумя запросами всегда будут отличаться (1 против 2), поэтому дубликатов не будет.