クエリ全体でその変数を使用できるように、MYSQL で式の結果を保持する変数を定義する方法が必要です。
これが可能になるように:
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
ここで、LONG EXPRESSION は、IF ステートメントで返されるすべての列に配置する必要がある非常に長い式になる可能性があります。多くの IF があります。
私の本能は、すべての手続き型言語のようにこれを行うことができるはずだと教えてくれます:
$var = LONG_EXPRESSION(....);
if($var) {..};
if($var) {..};
if($var) {..};
if($var) {..};
このようにして、より論理的になり、エラーが発生しにくくなります。簡単に維持でき、読みやすく、おそらく最適化さえできます。
MYSQL 内にこれに相当するものはありますか?
したがって、実行のすべての行に対してパラメーターを定義しますか?