具有if条件的mysql

时间:2014-02-25 09:30:00

标签: php mysql

我的问题是,如果用户是管理员,我需要先获得两个条件我需要显示所有交易,但如果用户不是管理员,我只需要显示自己的交易。 她的代码是我尝试但不起作用的。

我有桌子

  1. 用户(身份证,用户名,密码,类别等)

  2. 交易(身份证,姓名,说明,用户名等)

  3. SELECT IF (  (select category from users where username = ‘ali’ )==’A’) THEN
        Select * from transaction
    ELSE
        Select * from transaction where username = ‘ali’
    

    我也试过这个,但仍然没有解决方案

    SELECT IF(
      SELECT category FROM users where username= 'ali' AND category ='A',
      SELECT * FROM Transaction ,
      SELECT * FROM Transaction where username= 'ali'
    )
    

    由于

3 个答案:

答案 0 :(得分:1)

试试这个

$where_text = ""; // initially blank

// here $user variable contains the current username

if($user!='admin') // check $user is admin or not if not 
{
   $where_text = " WHERE username='$user' ";  // update $where_text
}

$query = "SELECT * FROM `transaction` ".$where_text; // apply in the query

现在,您可以通过$query变量

来使用您的查询

答案 1 :(得分:0)

我更喜欢在代码中执行此逻辑,但您可以使用where子句中的OR进行检查:

SELECT * FROM Transaction t
WHERE t.username = 'ali' 
OR EXISTS (SELECT category FROM users where username= 'ali' AND category ='A')

答案 2 :(得分:0)

这应该有效:

SELECT * FROM Transactions WHERE username = 'username' OR (SELECT 1 FROM users WHERE username = 'username' AND category = 'A')