簡體   English   中英

MySQL,PHP:按條件計算結果+獲得滿足條件的總結果

[英]MySQL,PHP: count results per condition + get the total result that satisfies the conditions

querytest表:

  1. xxx | y
  2. 999 | 888
  3. 999 | 787
  4. 111 | 222

查詢:

SELECT *,
       SUM(CASE WHEN XXX LIKE '999' AND YYY RLIKE '[0-9]8[0-9]' THEN 1 ELSE 0 END) AS Count999,
       SUM(CASE WHEN XXX LIKE '111' AND YYY RLIKE '[0-9]2[0-9]' THEN 1 ELSE 0 END) AS Count111
    FROM querytest
    WHERE 
    ( XXX LIKE '999' AND YYY RLIKE '[0-9]8[0-9]') 
    OR 
    ( XXX LIKE '111' AND YYY RLIKE '[0-9]2[0-9]')

結果:

Array
(
    [0] => 999
    [xxx] => 999
    [1] => 888
    [yyy] => 888
    [2] => 2
    [Count999] => 2
    [3] => 1
    [Count111] => 1
)

澄清:

我正在使用php。並且我想要一個查詢

  • 讓我知道我可以從(XXX LIKE'999'和YYY RLIKE'[0-9] 88 [0-9]')得到多少結果,我可以從(XXX LIKE'111'和YYY RLIKE '[0-9] 23 [0-9]'),依此類推。 就像上一個查詢一樣。

  • 讓我獲得所有結果,例如im使用此查詢:

 SELECT * FROM querytest WHERE ( XXX LIKE '999' AND YYY RLIKE '[0-9]8[0-9]') OR ( XXX LIKE '111' AND YYY RLIKE '[0-9]2[0-9]') 

我的問題

如何將前面的兩個點合並為一個查詢? 加上第二點使用LIMIT和ORDER的功能。

您或者需要進行單獨的查詢,或者使用UNION。

暫無
暫無

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

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