簡體   English   中英

MySQL-為同一列獲取多個值

[英]MySQL - Get multiple values for the same column

我正在嘗試為我的網站構建一個朋友系統,它的設置如下:

User's Table:
id
name

Friendship Table:
member1
member2

所以我想要的是當我有這樣的值時(member1是用戶的ID,member2是朋友的ID:

member1 - member2
1           2
1           3
1           5

我希望能夠獲得所有用戶的ID(在示例中為1)。 但是,當我在PHP中使用mysql_fetch_assoc時,我僅獲得member2 id之一。 因此,即使member1在他的朋友列表中具有ID 2、3和5,我也只能獲得他朋友的ID之一。 有什么辦法可以解決此問題,以便我可以獲取他朋友的所有ID? 謝謝

正如任何不錯的PHP數據庫教程將顯示的那樣,循環調用mysql_fetch_assoc()直到返回false為止。

如果Web服務器上的處理比MySQL服務器的帶寬少瓶頸,請使用

SELECT GROUP_CONCAT(member2) FROM Friendship where member1=...

接着

$ids=explode(',',$resultfield) 

在PHP中

假設您要獲得友誼表。 該表具有列:member1和member2。 要獲取基於member1的member2值,

<?php
$q1 = mysql_query("SELECT * FROM user_table");
while($r1 = mysql_fetch_assoc($q1))
{
    $q2 = mysql_query("SELECT * FROM friendship_table WHERE member1='".$r1['id']."'");
    while($r2 = mysql_fetch_assoc($q2))
    {
        echo $r2['member2'];
    }
}
?>

或使用sql join語句。

<?php
$q = mysql_query("SELECT  * FROM user_table JOIN friendship_table WHERE user_table.id=friendship_table.member1");
while($r = mysql_fetch_assoc($q))
{
    echo $r['member2'];
}
?>

暫無
暫無

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

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