madziikoy Asked: 2013-12-27 17:55:58 +0800 CST2013-12-27 17:55:58 +0800 CST 2013-12-27 17:55:58 +0800 CST Mysql别名IF语句 772 你如何查询类似的东西 if parent = 0 then alias is network_id else alias is group_id 这可能只需要查询吗? mysql alias 1 个回答 Voted Best Answer siride 2013-12-27T18:22:05+08:002013-12-27T18:22:05+08:00 做你想做的事是不可能的,即使不是不可能,也不是一个好主意。结果集中的列属于结果集中的每一行。每行不能有不同的别名。那是没有意义的。想象一下电子表格中的一个表格,它的每一列和每一行都有一个列标题。你会怎么记呢? 但是,您似乎希望能够在某些情况下将某些上游列视为 network_id,而在其他情况下将其视为 group_id。我不会质疑您的架构或查询设计,尽管它是可疑的。如果它是合理的,那么你可以通过简单的两列轻松实现这一点:network_id 和 group_id。如果 parent = 0,则仅填写 network_id,如果 parent 不为 0,则仅填写 group_id,如下所示(使用标准 SQL): ... CASE WHEN parent = 0 THEN alias ELSE NULL END AS network_id, CASE WHEN parent <> 0 THEN alias ELSE NULL END AS group_id, ... 您的应用程序代码可以使用需要使用的任何列。
做你想做的事是不可能的,即使不是不可能,也不是一个好主意。结果集中的列属于结果集中的每一行。每行不能有不同的别名。那是没有意义的。想象一下电子表格中的一个表格,它的每一列和每一行都有一个列标题。你会怎么记呢?
但是,您似乎希望能够在某些情况下将某些上游列视为 network_id,而在其他情况下将其视为 group_id。我不会质疑您的架构或查询设计,尽管它是可疑的。如果它是合理的,那么你可以通过简单的两列轻松实现这一点:network_id 和 group_id。如果 parent = 0,则仅填写 network_id,如果 parent 不为 0,则仅填写 group_id,如下所示(使用标准 SQL):
您的应用程序代码可以使用需要使用的任何列。