2013-06-13 42 views
0

我有這個數據應該輸出到相應數量的他與之交互的社交媒體。MYSQL在mysql數據庫中輸出多行只有一行

有互動是fblike_point,fbshare_point,tweet_point和follow_point

所以我們可以說,我已經與fblike_pointtweet_point從下面的數據來看互動。

enter image description here

所以我想要做的是,它應該輸出2倍,因爲我已經有fblike_point和tweet_point互動。

輸出:

2013年5月14日| fblike_point

2013-05-14 | tweet_point

如果我交互了4次,它應該輸出4次與他所做的相應的社交媒體交互。

那麼我可以設法做這個東西,但它是像冗餘,比如我使用的是MySQL查詢在PHP選擇數據:

SELECT date_participated, fblike_point FROM table WHERE fblike_point = 1 
SELECT date_participated, fbshare_point FROM table WHERE fbshare_point = 1 
SELECT date_participated, tweet_point FROM table WHERE tweet_point = 1 
SELECT date_participated, follow_point FROM table WHERE follow_point = 1 

那麼,有沒有其他辦法有一個簡短的方法或東西?

+2

你爲什麼要這麼做?您可以通過編程語言來處理結果集。 – Raptor

+0

那麼......我正在努力做的事,似乎我的問題很模糊。我正在做你的PHP。 =/ –

+0

@WesleyLachenal我很困惑,你想列出你每天在每一列中得到多少點,或者那一天X在給定列上有一個點?試一試'SELECT date_participated,SUM(fblike_point)AS fblike_point,SUM(fbshare_point)AS fbshare_point,SUM(tweet_point)AS tweet_point,SUM(follow_point)AS follow_point FROM ticket GROUP BY date_participated' with this query you can get all interaction一個給定的用戶每天都可以輕鬆創建'echo $ row ['date_participated']。 '|' 。 $ row ['fblike_point']。 「\ n」;'爲它的每一個。 – Prix

回答

2

如果我互動的4倍,它應該輸出4倍

與您的數據架構,你要麼需要你引用了四個不同的查詢,或UNION過這些。

它像冗餘

多餘的,因爲這樣你的架構組織。如果你想能夠處理這些不同的交互作用(這很有意義),那麼你需要一個額外的表格,其中一列標識你引用的原始表格的行,第二行列(可能是ENUM類型)標識社交媒體。兩者一起構成該表的主要關鍵。

然後,您可以從實際的表格中創建一個VIEW,這看起來就像您的表格現在一樣。這樣您就可以保持與現有查詢的兼容性,併爲您需要的情況提供更靈活的查詢。