2011-07-14 9 views
1

My MySQLテーブルには2つのフィールドがあり、MySQLにORDER BY 'new parameter'関数を適用するロジックに基づいて「新しいパラメータ」を作成します。MySQLのロジックに基づいて新しいパラメータを作成する

「新しいパラメータ」を作成するために私のロジック:

 
+------------+------------+ 
| field1  | field2 | 
+------------+------------+ 
| 100  |   | 
| 101  |   | 
| 103  | 101  | 
| 105  |   | 
| 110  | 100  | 
| 115  | 110  | 
| 116  | 100  | 
+------------+------------+ 

ロジック:

 
If 'field2' is NULL then take 'field1' value 
Else take 'field2' value 

このロジックを適用した後、「新しいパラメータ」は、テーブルの行ごとに、これらの値が含まれます:

 
100 
101 
101 
105 
100 
110 
100 

これをどのようにMySQL/PHPで行うことができますか。ありがとう。それは非DBNULL値を見つけるまで

答えて

2
SELECT * FROM TABLE WHERE COALESCE(Field2, Field1) = 'Blah Blah' 

COALESCE機能は、フィールド/値のリスト内を移動します。 COALESCEは、StatementのReturnセクションでも使用できます。

SELECT COALESCE(Field2, Field1) as NewParam FROM TABLE 
関連する問題