ВЫБЕРИТЕ 2 разных набора данных, используя MYSQL IF - PullRequest
0 голосов
/ 16 июля 2011

По сути, я хочу сделать выбор данных, отображаемых на основе статуса пользователя при входе в систему, например, если пользователь является пробным пользователем, затем выбрать данные из определенного диапазона дат, но если они платные выберите больший диапазон дат. Я попробовал следующий код ниже, но он выдает ошибку, говорящую, что мой синтаксис неверен. Любая помощь будет принята с благодарностью.

IF (SELECT MemberStatus FROM user WHERE Memberstatus = 'Trial') 
THEN
  SELECT *
  FROM article
  WHERE date > '1990/01/01';  
ELSE
  SELECT *
  FROM article
  WHERE date > '2000/01/01';
ENDIF;

Ответы [ 2 ]

1 голос
/ 16 июля 2011

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

1 голос
/ 16 июля 2011

Вам не нужен IF. Это также стандартный SQL

  SELECT *
  FROM article
  WHERE date >
           CASE
                 WHEN EXISTS (SELECT * FROM user WHERE Memberstatus = 'Trial')
                            THEN '2000/01/01'
                 ELSE '1990/01/01'
           END;

Редактировать: согласно комментарию к вопросу, SELECT от пользователя, вероятно, не завершен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...