簡體   English   中英

如果我有幾行具有相同的值,如何從mysql結果中獲取單個值

[英]How can I get a single value from a mysql result, if I have several rows with the same value

我有一個名為“ employees”的數據庫,其值如下:

value1     | value2 | value3
-----------------------------
employee1  |  key1  |  boss1
employee2  |  key2  |  boss1
employee3  |  key3  |  boss1
employee4  |  key4  |  boss2
employee5  |  key5  |  boss2

在php中,我試圖遍歷結果以獲取老板的所有雇員,但是僅獲得老板姓名一次,我嘗試使用GROUP BY ,但是在循環時,這僅顯示第一個條目:

$query = "SELECT * FROM employees WHERE value3 = 'boss1' GROUP BY value3";
$result = $db->query($query);
$foreach ($result as $row) {
    echo $row["value1"] . $row["value2"] . $row["value3"];
}

結果是:

employee1  |  key1  |  boss1

Whitout GROUP BY ,當與foreach循環時,它為每個條目顯示一次老板名稱

$query = "SELECT * FROM employees WHERE value3 = 'boss1'";
$result = $db->query($query);
foreach ($result as $row) {
    echo $row["value1"] . $row["value2"] . $row["value3"];
}

結果是:

employee1  |  key1  |  boss1
employee2  |  key2  |  boss1
employee3  |  key3  |  boss1

我正在嘗試獲得如下結果:

boss1
    employee1  |  key1
    employee2  |  key2
    employee3  |  key3

您可以在foreach使用if() ,如下所示:

foreach ($result as $row) {
    $i++;
    if ($i==1) {echo $row["value3"];}
    echo $row["value1"] . $row["value2"];
}

比,您可以得到想要的結果:

boss1
employee1  |  key1
employee2  |  key2
employee3  |  key3

您可以使用GROUP_CONCAT()獲取每個bossvalue1values2comma分隔(默認)列表,如下所示:

SELECT 
  GROUP_CONCAT(e.value1) AS value1,
  GROUP_CONCAT(e.value2) AS value2,
  e.value3 AS boss
FROM employees e
WHERE value3 = 'boss1' 
GROUP BY value3;

這將為您提供類似於boss1東西:

employee1,employee2,employee3 | key1,key2,key3 | boss1

編輯1: As a html list, something like: <ul>boss1 <li>employee1</li> <li>employee2</li> <li>employee3</li> </ul> I don't need the html code, but I need to get the data in a format which I can use as a list in html

SELECT 
  CONCAT('<ul>',GROUP_CONCAT(CONCAT('<li>',e.value1,'<\/li>')),'<\/ul>') AS value1,
  GROUP_CONCAT(e.value2) AS value2,
  e.value3 AS boss
FROM employees e
WHERE value3 = 'boss1' 
GROUP BY value3;

注意 :-您應該使用服務器端語言來實現。 並使用第一個查詢。

暫無
暫無

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

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