簡體   English   中英

MySQL通過乘以其他行中的值來返回1或0

[英]MySQL return 1 or 0 by multiplying the value in other rows

我有一個稱為應用程序的表。 該表具有名為狀態的列。 用戶可以有許多應用程序。 我想編寫一個查詢以根據整體狀態檢索用戶應用程序的狀態。 如果應用程序的每個狀態均為1,則查詢需要返回1,否則返回0。(邏輯上和每個狀態)。

我正在使用BIT_AND執行此操作。 如果要比較兩個或多個數據,此功能將顯示正確的結果。 如果只有一條記錄,則該值為1。

For example
0 * 0 => 1 (status) **This is error. Correct should be 0**
0 => 1 (status) **This is error. Correct should be 0**
1 * 0 = 0 (status)

我的桌子如下圖 在此處輸入圖片說明

我正在使用此查詢。

SELECT bit_and(application.status)
from applicant_applications application
where application.applicant_id = 1;

這個問題可以很容易地在程序中解決。 但是我在查詢中尋找東西。 提前致謝

您可以使用幾個聚合函數來確定查詢結果。 就像是

  SELECT IF(SUM(aa.status) = COUNT(DISTINCT aa.id), 1, 0) as `status`
    FROM applicant_applications aa
   WHERE aa.applicant_id = 1
GROUP BY aa.applicant_id;

檢查所有應用程序的狀態是否為1就足夠了。

要測試,請查看以下小提琴:

http://sqlfiddle.com/#!9/26a9bd/1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM