第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP/MYSQL 查詢被另一個數(shù)組分組

PHP/MYSQL 查詢被另一個數(shù)組分組

PHP
梵蒂岡之花 2023-04-21 10:01:48
我今天的需要,我希望你能找到很好的解決方案,如下所示。我有一個包含任務(wù)的數(shù)據(jù)庫表,每個任務(wù)的狀態(tài)為“打開”或“關(guān)閉”。就我而言,我只有帶有未完成任務(wù)的記錄。我需要構(gòu)建一個數(shù)組,顯示所有狀態(tài)選項(打開、關(guān)閉),并在每個狀態(tài)選項中顯示打開或關(guān)閉的任務(wù)(如果存在)。輸出應(yīng)該是:Array (  [open] => Attay(task1), Array(task2),..  [closed] => Array()  )如果我進(jìn)行 sql 查詢:select task_id,status from tasks group by status我只得到“打開”中的任務(wù)。哪個是構(gòu)建狀態(tài)數(shù)組并在每個任務(wù)中“附加”具有該狀態(tài)的任務(wù)的最佳方法?提前致謝!
查看完整描述

4 回答

?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊

你可以嘗試這樣的事情


$sql = "SELECT task_id, status FROM tasks";


$status['open'], status['close'] = [];


while( $row = $result->fetch_assoc() ) {


    if ($row['status'] == 'open') {

        array_push($status['open'], $row['task_id']);

    }


    if ($row['status'] == 'close') {

        array_push($status['close'], $row['task_id']);

    }

}


print_r($status);


查看完整回答
反對 回復(fù) 2023-04-21
?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗 獲得超8個贊

您可以使用GROUP_CONCAT將每個狀態(tài)的所有任務(wù)收集到逗號分隔列表中,然后將explode其收集到 PHP 中的數(shù)組中。假設(shè)您正在使用mysqli并且您的連接在 中$conn,您將執(zhí)行如下操作:


$sql = "SELECT status, GROUP_CONCAT(task_id) AS taskids FROM tasks GROUP BY status";

$result = $conn->query($sql);

$output = array();

while ($row = $result->fetch_assoc()) {

    $output[$row['status']] = explode(',', $row['taskids']);

}


查看完整回答
反對 回復(fù) 2023-04-21
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊

這樣解決的。


? $statusArray = ['opened', 'wait_others', 'wait_us', 'closed'];

? foreach ($statusArray as $status) {

? ? $ticketsArray[$status]= array();

? }

? foreach ($row as $key => $value) {

? ? $ticketsArray[$value->status_title][$value->ticket_id]= $row[$key];

? }

? print"<pre>";print_r($ticketsArray);


查看完整回答
反對 回復(fù) 2023-04-21
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗 獲得超3個贊

在純 SQL 中,您可以使用 生成派生的狀態(tài)表union all,然后將原始表帶入left join:


select

    s.status,

    json_arrayagg(t.task_id) json_task_ids

from (

    select 'open' status

    union all select 'closed' status

) s

left join tasks t on t.status = s.status

group by s.status

MySQL 沒有array數(shù)據(jù)類型,因此這會將任務(wù) ID 列表作為 json 數(shù)組。另一種選擇是構(gòu)建逗號分隔列表:為此,您可以使用group_concat():


select

    s.status,

    group_concat(t.task_id) csv_task_ids

from (

    select 'open' status

    union all select 'closed' status

) s

left join tasks t on t.status = s.status

group by s.status


查看完整回答
反對 回復(fù) 2023-04-21
  • 4 回答
  • 0 關(guān)注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號