2016-06-11 1 views
0

Joomlaのサイトがあり、joomlaのドキュメントでは、クエリ内でMySQLのIF、ELSE関数と何も関係がありません。Joomla PHP MySQL MySQL IF関数を使用するクエリ

MySQLのif文が必要なクエリの部分はここにあります。 $番号入力がmysqlのクエリにどこのステートメントを追加し、その後server_number列データと一致しない場合

$query->where('IF '.$db->quoteName('server_number').' != '.$number.' THEN '$query->where($db->quoteName('container').' != 1');' END'); 

$query->where($db->quoteName('container').' != 1'); 

それは、このようなことをやるべき。

全MySQLのクエリ:

SELECT a.*,ext.media_type 
FROM database_hwdms_processes AS a 
LEFT JOIN database_hwdms_media AS media ON media.id = a.media_id 
LEFT JOIN database_hwdms_ext AS ext ON ext.id = media.ext_id 
WHERE (a.status = 1 || a.status = 3) AND a.attempts < 5 AND `container` != 1 AND 
server = 1 
ORDER BY a.media_id ASC 

を追加したい "!!IF server_numberを= 1 THEN WHEREコンテナ= 1つのEND" の交換を意味するであろう "!とcontainer = 1"

+0

そして、IFとELSEで上記のコードを使用すると正確に何がうまくいかないのですか? –

+0

私はすべての単一のIFメソッドで出力を私の質問に完全なMySQLのクエリを追加しました。私はちょうどエラーを試みます。 MySQLの構文が間違っています。 – C0nw0nk

答えて

0

I MySQLを使用して私の問題を解決する良い方法を見つけた

OR ||

機能

だから私の固定されたコードは、このになった:

PHP:プレーンMySQLのテキストで

$query->where('('.$db->quoteName('server_number').' = '.$number.' || '.$db->quoteName('container').' != 1)'); 

SELECT a.*,ext.media_type 
FROM database_hwdms_processes AS a 
LEFT JOIN database_hwdms_media AS media ON media.id = a.media_id 
LEFT JOIN database_hwdms_ext AS ext ON ext.id = media.ext_id 
WHERE (a.status = 1 || a.status = 3) AND a.attempts < 5 AND (`server_number` = 1 || `container` != 1)AND 
server = 1 
ORDER BY a.media_id ASC