我需要一种方法来定义一个变量来保存在MYSQL中的表达式的结果,以便我可以在整个查询中使用该变量。
所以这是可能的:需要的方法来完成这个SQL查询
SELECT
IF(VALID,EMPLOYEE_NAME,"NULL") AS NAME, /** <-- Note *VALID*
IF(VALID,ID,"NULL") AS ID, /** <-- And here...
IF(VALID,OCCUPATION,"NULL") AS OCCUPATION, /** <-- And here...
IF((**LONG EXPRESSION**), TRUE, FALSE) AS VALID; /** <-- Taken from here
其中长表达式可以非常隆表达,我需要把在IF语句返回的每个列,还有很多国际单项体育联合会。
我的直觉告诉我,我应该能够做到这一点就像每个程序语言:
$var = LONG_EXPRESSION(....);
if($var) {..};
if($var) {..};
if($var) {..};
if($var) {..};
这样,它是很多更符合逻辑且不易出错。易于维护,易读,甚至可能优化。
MYSQL里面有这个等价物吗?
因此,为每一行执行定义一个参数?
我理解正确吗?如果它是有效的,那么你需要一个值或NULL,否则结果中的每个字段? – Sujay 2012-07-20 01:07:39
所以,你想为结果中的所有'VALID'条目获得'NAME,ID,OCCUPATION,ETC.',其中一些复杂的逻辑给'VALID'赋'TRUE'或'FALSE'为'TRUE'?是对的吗?你正在描述一个'WHERE'子句。 – 2012-07-20 01:12:38
我需要一个零或NULL,并为结果的工作位置值。 WHERE不会返回VALUE为false的行,对吗? – Ted 2012-07-20 07:53:54