Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 26.02.2018, 22:12   #1
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
Вопрос Условие для вывода информации

Доброго времени суток!
Есть таблица (скрин)
Так вывожу все записи
Код:

SELECT * FROM `test`

Так вывожу все записи для конкретного пользователя (from: 3)
Код:

SELECT * FROM `test` WHERE `from` = 3

Так вывожу все записи для конкретного пользователя (from: 3) + статус Завершено
Код:

SELECT * FROM `test` WHERE `from` = 3 AND `status` = 'Завершено'

Работает нормально.
Но если так вывожу все записи для конкретного пользователя (from: 3) + статус Завершено + флаг S
Код:

SELECT * FROM `test` WHERE `from` = 3 AND `status` = 'Завершено' OR `spec` = 'S'

выводятся абсолютно все записи для from: 3 со всеми статусами, а должно вывестись только две с id 1 и 3.

В итоге нужно вывести все записи, которые имеют в полях from: 3, status: Завершено, spec: S
Изображения
Тип файла: png Table.png (8.8 Кб, 18 просмотров)
Shouldercannon вне форума   Ответить с цитированием
Старый 26.02.2018, 22:20   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,953
Репутация: 6285
По умолчанию

Наверно жe OR там не к месту. Замени на and
А если две с id 1 и 3, то `from` = 3 не нужно. Не?
А если нужно, то 1 и 3 ни как ))

Короче не понятно чего нужно
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 26.02.2018 в 22:25.
Аватар на форуме   Ответить с цитированием
Старый 27.02.2018, 06:59   #3
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
По умолчанию

Так
Код:

SELECT * FROM `test` WHERE `from` = 3 AND `status` = 'Завершено' AND `spec` = 'S'

получим только одну строку с id 3, но так же есть ещё одна строка с id: 1, которая при таком раскладе не отображается.
Shouldercannon вне форума   Ответить с цитированием
Старый 27.02.2018, 09:06   #4
ADSoft
Профессионал
 
Регистрация: 25.02.2007
Адрес: Татарстан
Сообщений: 3,249
Репутация: 912

icq: 303-206-418
skype: ad-soft.info
По умолчанию

у строки с id = 1, from ! = 3 потому и не будет отображаться
а так - да - вы по человечески то сформулируйте чего хотите от запроса ))))
ADSoft вне форума   Ответить с цитированием
Старый 27.02.2018, 23:26   #5
Shouldercannon
Профессионал
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Адрес: Пенза
Сообщений: 1,773
Репутация: 226

icq: 473732523
По умолчанию

Нужно делать два запроса. Так работает в SQL-запросе через phpmyadmin
Код:

SELECT * FROM `test` WHERE `from` = 3 AND `status` = 'Завершено';
SELECT * FROM `test` WHERE `spec` = 'S' AND `status` = 'Завершено';

Пытаюсь тоже самое сделать через PHP
Код:

$query = "SELECT * FROM `test` WHERE `from` = 3 AND `status` = 'Завершено'";
$query .= "SELECT * FROM `test` WHERE `spec` = 'S' AND `status` = 'Завершено'";
$result = mysql_query($query) or die ("ERROR: ".mysql_error());

Получаю ошибку: ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM `test` WHERE `spec` = 'S' AND `status` = 'Завершено'' at line 1
Не соображу как объединить два запроса в один
Shouldercannon вне форума   Ответить с цитированием
Старый 27.02.2018, 23:28   #6
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,953
Репутация: 6285
По умолчанию

(`from` = 3 OR `spec` = 'S') AND `status` = 'Завершено'
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MATLAB Для вывода подробной информации о переменных используется команда Женя145 Помощь студентам 1 19.10.2017 21:27
Handle любого окна для вывода информации seniks Общие вопросы Delphi 1 25.05.2017 07:21
Разработать пакетный файл для вывода информации в файл о переменных среды Windows Ozma Помощь студентам 0 16.12.2016 20:16
Окно для вывода информации c# wpf seojaa Фриланс 2 15.12.2013 15:36
SQL-запрос для вывода в шахматном виде просуммированной информации. Столбцы - месяцы, строчки - года Phantom91x Помощь студентам 4 12.07.2012 09:02


12:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru