2011-07-14 64 views
1
一个新的参数

我的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也可用于声明的返回部分。

SELECT COALESCE(Field2, Field1) as NewParam FROM TABLE