2017-07-04 106 views
0

在我的數據庫中有一個名爲posts的表。在這裏面,欄目有:PHP:如何從MySQL中的單個字段中的數組中獲取值

帖子ID - 1個

PostBody - 我的第一篇

Likers - 1,2,3,4,5,

現在什麼我試圖做的是,在相似的領域,我試圖拉取個人號碼而不需要拉動場上的所有數據。所以如果我想檢索3號相似者,我希望輸出爲3,當我回應出來。

我試過FIND_IN_SET()和strstr()。我得到的是整個陣列,1-5,被回聲。正因爲如此,我無法將它與其他具有匹配數字的變量(即.e $ var = 3;)相匹配。

有沒有辦法做到這一點?

感謝名單

+0

你不應該有這樣的方式。你應該有一個不同的'post_likers'表,它只有'post_id'和'liker_id'列。通過這種方式,您可以運行簡單的SQL查詢來查找用戶是否喜歡某個帖子。 – theomessin

+0

你可以用'FIND_IN_SET'顯示查詢嗎? –

+0

SELECT likers FROM posts WHERE FIND_IN_SET('3',likers) – user2938948

回答

0

如果你真的想這樣做,這樣一來(看我的評論第一),你可以做的是檢索逗號分隔的數據,它爆炸成一個PHP數組,然後使用array_search建在功能:

$likers_attribute_data = '1,2,3,4,5,'; 
$likers_array = explode(',', $likers_attribute_data); 
// check if user 3 is a liker: 
if (array_search('3', $likers_array) { 
    // he has :) 
} else { 
    // he hasn't :(
} 

再次,這是一個非常草率和低效率的做生意的方式。請在我的評論中使用解決方案!

+0

OP需要使用mysql的解決方案而不是PHP –

+0

@FrayneKonok他沒有指定這個。他還說,他嘗試使用'strstr'這是一個PHP函數。如果你仔細閱讀這個問題,你可以知道任何一種解決方案都是可以接受的。 – theomessin

+0

@themessin此解決方案不適合我。它不像預期的那樣拉動 – user2938948

相關問題