MySQL найти [И ИЛИ] В ВЫБЕРИТЕ ЗАПРОС ... КАК 1 + 1-> 1, 1 + 0-> 1, 0 + 1-> НО 0 + 0-> 0 !!ОПП.исключающее? - PullRequest
0 голосов
/ 29 мая 2011

У меня есть простой, но интересный MySQL QUERY

$recs_viewed2day = "SELECT * 
                    FROM viewedlog 
                    WHERE ( insdt >= date_sub( NOW(), INTERVAL 1 DAY ) 
                    AND ( member='$user'  AND OR visitor='$visitor' ) 
                    ORDER BY $field  
                    LIMIT 0, 200 ";

все просмотренные записи зарегистрированы.

это относится к журналу просмотра, который содержит все записи, просматриваемые пользователем - ключом для пользователя является либо его идентификатор при входе в систему, либо случайный хэш md5, когда он не зарегистрирован.

Идея состоит в том, чтобы извлечь все записи, принадлежащие пользователю, либо хэшем md5, поскольку пользователь не входил в систему, ни ИЛИ ID, если он есть, И любым из двух.

требование к запросу: сначала выберите все записи, только если они зарегистрированы сегодня (insdt = logged_date) конечная часть, $ field, может быть любым полем, поэтому оно устанавливается как переменная. средняя часть создает проблему - хотите выбрать все записи, которые соответствуют одному или обоим, но не, если оба являются нулевыми / пустыми.

1 + 1-> 1, 1 + 0-> 1, 0 + 1> 1, Но 0 + 0-> 0 !! то есть. отсутствует для возврата false / 0.

Интересно, есть ли здесь что-то, что может работать? как противоположность XOR ??

Любое улучшение моего собственного MySQL выше будет оценено.

спасибо.

...