2014-02-25 31 views
0

我的問題是我需要得到兩個條件第一個如果用戶是管理員我需要顯示所有交易,但如果用戶不是管理員我只需要顯示自己的交易。她的代碼是我嘗試過但不起作用的代碼。如果條件的Mysql

表我有

  1. 用戶(ID,用戶名,密碼,類...等)

  2. 交易(編號,名稱,描述,用戶名,...等)

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' 
) 

感謝

+0

你能告訴我們你得到確切的錯誤嗎? – sanders

+1

你的代碼不會在第一個工作,因爲你使用'''和'''。 – Albzi

+0

有錯誤是語法錯誤,是idonteven這就是我需要的, –

回答

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變量

+0

我可以做到這一點使用PHP,但我需要MySQL –

0

我寧願做這個邏輯的代碼,但你可以檢查使用OR在where子句中:

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

這應該工作:

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

感謝兄弟它的作品 –