gpt4 book ai didi

mysql - SQL 获取 WHERE 条件顺序

转载 作者:行者123 更新时间:2023-11-29 13:00:09 24 4
gpt4 key购买 nike

..

大家好,

我正在尝试一种方法,以特定顺序*显示使用 mysql SELECT 查询选择的所有数据,并且所有这些都在一个查询中(或更多,但越少越好)。

  • 这个顺序是:第一个 WHERE 条件 = 第一个需要显示的结果

    第二个 where 条件 = 第二个结果,直到 WHERE 条件结束。

http://i.stack.imgur.com/78Uit.png

我希望它是清楚的。

这是我的代码:

    $sql= "SELECT O.INTITULE, O.ENTREPRISENOM, O.TYPECONTRAT, O.DATEDEBUT, O.DATEINSERTION, O.REGION,
O.FONCTION, O.ID_DIFFUSEUR, D.Id, D.MiseEnAvantOffres
FROM OffreEmploi O join
Diffuseur D
on O.ID_DIFFUSEUR = D.Id
WHERE (O.INTITULE = ? AND O.REGION = $regions AND O.FONCTION = $fonctions AND O.TYPECONTRAT = $type_contrat AND D.MiseEnAvantOffres = 1 )
OR (O.REGION = $regions AND O.FONCTION = $fonctions AND O.TYPECONTRAT = $type_contrat AND D.MiseEnAvantOffres = 1 )
OR (O.FONCTION = $fonctions AND O.TYPECONTRAT = $type_contrat AND D.MiseEnAvantOffres = 1 )
OR (O.FONCTION = $fonctions AND D.MiseEnAvantOffres = 1 )
OR (O.INTITULE = ? AND O.REGION = $regions AND O.FONCTION = $fonctions AND O.TYPECONTRAT = $type_contrat )
OR (O.REGION = $regions AND O.FONCTION = $fonctions AND O.TYPECONTRAT = $type_contrat )";

$query = $this->db->query($sql,array($_POST['intitule'],$_POST['intitule']));

if ($query->num_rows() > 0)
{

$html = '<div class="resultats">';

foreach ($query->result_array() as $row)
{
$html .= '<p>'.$row['INTITULE'].'</p>';
$html .= '<p>'.$row['ENTREPRISENOM'].'-'.$row['TYPECONTRAT'].'</p>';
$html .= '<p>Date de début : '.$row['DATEDEBUT'].'</p>';
$html .= '<p>Offre publiée le '.$row['DATEINSERTION'].'</p>';
}

$html .= '</div>';
}

return $html;

}

我希望这些结果显示一次,而不是两次或更多次。

我做了一些研究,但我真的不知道该怎么做。

最佳答案

使用 UNION 运算符组合不同 WHERE 条件给出的结果集。

创建一个额外的列 ordBY 并根据决定排序顺序的 WHERE 条件为其赋予值。

SELECT <columnList> , 1 as ordBy
FROM tableName
JOIN<condition>
WHERE <condition1>

UNION

SELECT <columnList> , 2 as ordBy
FROM tableName
JOIN <condition>
WHERE <condition2>
ORDER BY ordBy

注意您必须仅在 last WHERE 条件结束时应用 ORDER BY 子句。

关于mysql - SQL 获取 WHERE 条件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23460951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com