評估數據我有一個MySQL數據庫表具有以下colums閱讀從MySQL數據庫
ID
status (can contain values 0, 1, 2)
timepstamp
text
note
owner
我想獲得關於非特異性老闆從表中的條目下列信息:
number of entries
number of entries where status=0
number of entries where status=1
number of entries where status=2
number of entries where LENGTH(note)>0
minimum timestamp
maximum timestamp
我用來讀取完整的數據集,然後使用
SELECT status, timestamp, LENGTH(note)>0 WHERE owner="name";
我用PHP對其進行評估有一些用戶有這麼多條目的問題,以至於如果我將數據讀取到PHP中,我經常會遇到內存不足錯誤。我認爲讓MySQL評估數據應該更具性能。我無法寫出能夠完成此任務的查詢。
SELECT
MIN(timestamp) AS mintime,
MAX(timestamp) AS maxtime,
COUNT(*) AS number,
...
WHERE owner="name"
難道在某種程度上可以一次獲得結果嗎?例如用嵌套的WHERE或IF內的COUNT?
COUNT(WHERE status=0) AS inactive
COUNT(IF(status=1)) AS active
...
你會如何解決這個問題?
工作正常。由於我使用的是ENUM,所以我必須改變的僅僅是狀態的值。看起來,MySQL正在使用鍵進行比較(並且值「0」的鍵爲「1」,...) – 2012-02-20 08:30:02