Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2018, 21:12   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
Вопрос Условие для вывода информации

Доброго времени суток!
Есть таблица (скрин)
Так вывожу все записи
Код:
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 Кб, 70 просмотров)
Shouldercannon вне форума Ответить с цитированием
Старый 26.02.2018, 21:20   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

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

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

Последний раз редактировалось Аватар; 26.02.2018 в 21:25.
Аватар вне форума Ответить с цитированием
Старый 27.02.2018, 05:59   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Так
Код:
SELECT * FROM `test` WHERE `from` = 3 AND `status` = 'Завершено' AND `spec` = 'S'
получим только одну строку с id 3, но так же есть ещё одна строка с id: 1, которая при таком раскладе не отображается.
Shouldercannon вне форума Ответить с цитированием
Старый 27.02.2018, 08:06   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

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

Нужно делать два запроса. Так работает в 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, 22:28   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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