- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вторая таблица используется для поиска по компании, так как в первой она не указана.
В первой указан пользователь, для которого указана компания во второй таблице.
Если В скобках AND больше одного, то вытаскивает 0.
В чем моя ошибка?
Заранее спасибо.
У вас в скобках условие И на одно и то же поле - а значения разные, то есть вы ищете запись, где (например) a.`uid`=58 AND a.`uid`=57 - одновременно. Например, у одной записи это значение будет 57, то условие a.`uid`=58 - не выполнится и вся скобка будет false.
Судя по 1=1 вы запросы генерируете, если вам надо узнать для нескольких значений - то используйте OR между ними или a.`uid` IN (57,58,53)
Если хотите OR - то можно положить все нужные значения в массив, а воптом join его через ' or ' сделать, если на php.
Почему
Это ведь не переменная.
Мы вытаскиваем значения равные 57, а так же 58.
Разве не так?
и вдогонку...
Кто-нибудь может мне объяснить вот это вот:
1=1
Chukcha добавил 16.11.2010 в 21:52
Gaaarfild,
Ваш пример - взаимосиключаемы
У Вас не может быть одновременно и 2 и 3 яблока
У вас может быть или 2 или 3 яблока.
1=1
так делают если условия выборки конструируются динамически в программе
1=1 - это заглушка. Когда генерируешь запрос через цикл, как-то необходимо завершить его корректно. Он же не может закончится на AND,
Почему - ошибочно?
Это ведь не переменная.
Мы вытаскиваем значения равные 57, а так же 58.
Разве не так?
Нет, в данном случае AND означает что будут искаться строки у которых одновременно выполняются эти условия. Попробуйте на какой-нибудь просто табличке с несколькими полями.
Если поставить это условие на разные поля - типа
То выберутся строки, в которых поле type LIKE carbaseedit_upload_csv И поле uid = 57
А если :
то надо чтобы поле было равно 57 и 58 одновременно у одной строки (кортеж это вроде зовется) - чего быть не может.
Действительно ошибка в этом. Решил тем, что выставил в скобках вместо AND - OR.
И все заработало абсолютно правильно.
Спасибо за помощь.
Вообще странно, что все работает правильно, ведь условие 1=1 будет выполняться всегда - то есть смысла в остальных условиях в этой скобке нет.
Вообще странно, что все работает правильно, ведь условие 1=1 будет выполняться всегда - то есть смысла в остальных условиях в этой скобке нет.
Помимо 1=1 там еще есть условия, связанные через AND, поэтому выражение в скобках не всегда будет истинным
Действительно ошибка в этом. Решил тем, что выставил в скобках вместо AND - OR.
И все заработало абсолютно правильно.
Помимо 1=1 там еще есть условия, связанные через AND, поэтому выражение в скобках не всегда будет истинным
По словам ТС там AND больше нет, впрочем если все работает как надо - смысла дальше обсуждать особо нет.