首页 > 解决方案 > 如何根据其他列的结果运行 SELECT 语句?

问题描述

我有一个这样的 MySQL 表:

CREATE TABLE `my_table` (
  `col1` varchar(45) DEFAULT '',
  `col2` varchar(45) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

它包含以下数据:

在此处输入图像描述

如何使用SELECT语句生成这样的结果:

在此处输入图像描述

列内容的含义check如下:

`both` when both `col1` and `col2` have values.
`left` when only `col1` has a value.
`rightest` when only `col2` has a value.
`empty` when both `col1` and `col2` has empty value.

我认为查询看起来像这样

# something must be used to replace ???
SELECT (???) AS check, col1, col2 FROM my_table;

where???应该改成别的东西。

标签: mysql

解决方案


使用CASE WHEN表达式

SELECT CASE WHEN col1 = '' and col2='' then 'Empty'
            WHEN col1 = '' then 'Right'
            WHEN col2='' then 'Left'
            else 'Both' end as 'Check',
        col1, col2 FROM yourtablename

推荐阅读