作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
..
大家好,
我正在尝试一种方法,以特定顺序*显示使用 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/
我是一名优秀的程序员,十分优秀!