powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Логика работы Mysql
5 сообщений из 5, страница 1 из 1
Логика работы Mysql
    #38828027
shifrod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все привет. суть вопроса :
есть запрос к примеру:
select * from

((select 'first','second','third','fourth','five') union

(select 'первый',1,'поле1',2,66) union
(select 'второй',2,'поле2',2,66) union

(select 'третий',3,'поле3',1,66) union
(select 'четвертый',4,'поле4',1,66) union
(select 'пятый',5,'поле5',1,66)) as tab

where tab.fourth!=2 and tab.five!=66;

по логике он должен из таблицы tab исключить записи где tab.fourth=2 and tab.five=66...но это не так он не выведет ни одну запись!
если вместо ... where tab.fourth!=2 and tab.five!=66... заменить оператор AND на OR то он исключит записи где tab.fourth=2 and tab.five=66. результат конечно такой какой нужен..но не понимаю как он с OR это делает. Объясните пожалуйста почему так???
...
Рейтинг: 0 / 0
Логика работы Mysql
    #38828099
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формулируйте задачу, а не свои попытки её решить.
...
Рейтинг: 0 / 0
Логика работы Mysql
    #38828119
shifrod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оке. задача: понять почему в запросе :
select * from

((select 'first','second','third','fourth','five') union

(select 'первый',1,'поле1',2,66) union
(select 'второй',2,'поле2',2,66) union

(select 'третий',3,'поле3',1,66) union
(select 'четвертый',4,'поле4',1,66) union
(select 'пятый',5,'поле5',1,66)) as tab

where tab.fourth!=2 and tab.five!=66;

не выведет строк? а при замене and на or выведет. как отрабатывается условие tab.fourth!=2 and tab.five!=66? и
tab.fourth!=2 or tab.five!=66?
...
Рейтинг: 0 / 0
Логика работы Mysql
    #38828175
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shifrodВсе привет. суть вопроса :
есть запрос к примеру:
select * from

((select 'first','second','third','fourth','five') union

(select 'первый',1,'поле1',2,66) union
(select 'второй',2,'поле2',2,66) union

(select 'третий',3,'поле3',1,66) union
(select 'четвертый',4,'поле4',1,66) union
(select 'пятый',5,'поле5',1,66)) as tab

where tab.fourth!=2 and tab.five!=66;

по логике он должен из таблицы tab исключить записи где tab.fourth=2 and tab.five=66...но это не так он не выведет ни одну запись!
если вместо ... where tab.fourth!=2 and tab.five!=66...


нет, ничего он не должен. UNION (не ALL) исключает дублирующиеся строки , а у тебя первое поле во всех подзапросах разное.

shifrod заменить оператор AND на OR то он исключит записи где tab.fourth=2 and tab.five=66. результат конечно такой какой нужен..но не понимаю как он с OR это делает. Объясните пожалуйста почему так???

AND и OR ставятся у тебя в WHERE, они на процесс исключения дубликатов никак не влияют.
...
Рейтинг: 0 / 0
Логика работы Mysql
    #38828191
shifrod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
во! спасибо. понял:-)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Логика работы Mysql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]