首页 > 解决方案 > 如何将 'this' SELECT 转换为多个字符串

问题描述

如何将此 SELECT 转换为带有字符串的输出(在此示例下方)?

SQLFiddle

nose_1

|id|class|about_education|
| 1|    1|            a01|
| 2|    0|            a02|

coins_2

|id|class|about_education|
| 1|    1|            a01|
| 2|    0|            a02|

money_3

|id|class|about_education|
| 1|    1|            a01|
| 2|    1|            a10|


SELECT 
     COUNT(CASE WHEN about_education = 'a01' and class = 1 then 1 else 0 end) a01,
     COUNT(CASE WHEN about_education = 'a02' and class = 1 then 1 else 0 end) a02, 
     COUNT(CASE WHEN about_education = 'a03' and class = 1 then 1 else 0 end) a03, 
     COUNT(CASE WHEN about_education = 'a04' and class = 1 then 1 else 0 end) a04, 
     COUNT(CASE WHEN about_education = 'a05' and class = 1 then 1 else 0 end) a05, 
     COUNT(CASE WHEN about_education = 'a06' and class = 1 then 1 else 0 end) a06, 
     COUNT(CASE WHEN about_education = 'a07' and class = 1 then 1 else 0 end) a07, 
     COUNT(CASE WHEN about_education = 'a08' and class = 1 then 1 else 0 end) a08, 
     COUNT(CASE WHEN about_education = 'a09' and class = 1 then 1 else 0 end) a09,
     COUNT(CASE WHEN about_education = 'a10' and class = 1 then 1 else 0 end) a10
FROM 
(
  SELECT id,class,about_education from nose_1
  UNION ALL
  SELECT id,class,about_education FROM coins_2
  UNION ALL
  SELECT id,class,about_education FROM money_3
) t

输出:

$check_a01 = 3;
$check_a02 = 0;
$check_a03 = 0;
$check_a04 = 0;
$check_a05 = 0;
$check_a06 = 0;
$check_a07 = 0;
$check_a08 = 0;
$check_a09 = 0;
$check_a10 = 1;

Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。

标签: phpmysqlstring

解决方案


您可以将 THEN 之后的所有 1 放在引号中,并将 ELSE 之后的所有 0 放在引号中。

then '1' else '0' end

推荐阅读