iT邦幫忙

0

[mysql]如何將一個column內的布林型態資料OR起來

  • 分享至 

  • xImage

請問如何下query將一個布林型態的欄位內資料全部一起取OR,有這種函數嗎?


CREATE TABLE `AAA` (
   `c` BOOLEAN NULL DEFAULT NULL,
   `des` Text 
);
 
INSERT INTO `AAA` (`des`) VALUES ('1');
INSERT INTO `AAA` (`des`) VALUES ('1');
INSERT INTO `AAA` (`des`) VALUES ('1');
INSERT INTO `AAA` (`des`) VALUES ('2');
INSERT INTO `AAA` (`des`) VALUES ('2');
INSERT INTO `AAA` (`c`, `des`) VALUES (TRUE, '2');



SELECT OR(`c`) AS ored_C FROM `AAA` WHERE `des` = '2';

程式碼中的OR(`c`)是我假想的,想要將des2的所有c全部or起來

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=572e0c99e7c3f8655a343af858826fa4

期望結果
由於des2c(NULL, NULL, TRUE)
or起來的意思是將這三個值取OR,也就是(NULL OR NULL OR TRUE),結果為TRUE
所以我想要的結果如下

ored_C
TRUE
看更多先前的討論...收起先前的討論...
rogeryao iT邦超人 8 級 ‧ 2020-10-13 15:23:10 檢舉
請至 https://dbfiddle.uk/?rdbms=mysql_8.0
建立 Table 的範例 , 較易明瞭問題
wrxue iT邦好手 1 級 ‧ 2020-10-13 17:29:00 檢舉
感謝提供網頁,內容更新好了,麻煩大神再幫忙解答
石頭 iT邦高手 1 級 ‧ 2020-10-13 17:36:11 檢舉
所有`c`全部`or`起來是甚麼意思?
能否提供期望結果?
wrxue iT邦好手 1 級 ‧ 2020-10-13 18:37:28 檢舉
抱歉,已附上預期結果,麻煩再幫忙看看
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
rogeryao
iT邦超人 8 級 ‧ 2020-10-13 18:12:42
最佳解答

問題不易了解 , 純屬猜測

CREATE TABLE `AAA` (
   `c` BOOLEAN NULL DEFAULT NULL,
   `des` Text 
);
 
INSERT INTO `AAA` (`c`, `des`) VALUES (NULL,'1');
INSERT INTO `AAA` (`c`, `des`) VALUES (NULL,'1');
INSERT INTO `AAA` (`c`, `des`) VALUES (NULL,'1');
INSERT INTO `AAA` (`c`, `des`) VALUES (NULL,'2');
INSERT INTO `AAA` (`c`, `des`) VALUES (NULL,'2');
INSERT INTO `AAA` (`c`, `des`) VALUES (TRUE, '2');
-- CASE 1 : 取出 `des` = '2' 而且 `c` 只要含有 TRUE 就是為 TRUE
SELECT  
CASE WHEN 
SUM(CASE WHEN `c`=TRUE THEN 1 ELSE 0 END) >=1 
THEN 'TRUE' ELSE 'FALSE' END AS ored_C,des
FROM `AAA` WHERE `des` = '2' 
GROUP BY des;
-- CASE 2 : 取出 `des` = '2' 而且 `c` 不含有 FALSE 就是為 TRUE
SELECT  
CASE WHEN 
SUM(CASE WHEN `c`=TRUE OR `c` IS NULL THEN 0 ELSE 1 END) >=1 
THEN 'FALSE' ELSE 'TRUE' END AS ored_C,des
FROM `AAA` WHERE `des` = '2' 
GROUP BY des;

Demo

wrxue iT邦好手 1 級 ‧ 2020-10-13 18:37:50 檢舉

抱歉,已附上預期結果,麻煩再幫忙看看

rogeryao iT邦超人 8 級 ‧ 2020-10-13 19:58:32 檢舉

程式碼已更新,快猜不透了

wrxue iT邦好手 1 級 ‧ 2020-10-13 20:54:24 檢舉

猜到了,case 1應該就是我要的,感謝

我要發表回答

立即登入回答