所以我有一个SQL查询
$choice = mysqli_real_escape_string($con,$_POST['choice']);
if($option == "Name")
$searchresult = "SELECT id, stationname1, stationinfo1, stationprice1, image1, stationname2, stationinfo2,
stationprice2, image2, stationname3, stationinfo3, stationprice3, image3, stationname4, stationinfo4, stationprice4,
image4 FROM fuel WHERE stationlocation1 LIKE '%" . $location . "%' ORDER BY stationname1 $choice"; //search database
获取数据并按站名1排列。问题是我有站点名1 - 4我想一起订购,所以所有名称都按字母顺序排列,无论列。我知道使用
ORDER BY stationname1 ASC, stationname2 ASC, stationname3 ASC, stationname4 ASC
因为单独订购而无法工作。请问我该怎么做才能一起订购?
基本上是
形式的东西ORDER BY stationname1 and stationname2 and stationname3 and stationname4 ASC
例如...查看此数据库pic,我希望它显示:
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
正如其他人所说,你真的应该规范化你的数据,这样你就不会每个实际行有效地拥有4行数据;但这应该可以得到你想要的东西(,可能是规范数据的途径):
SELECT id, stationname1 AS stationname, stationinfo1, stationprice1, image1
FROM fuel
WHERE stationlocation1 LIKE '%" . $location . "%'
UNION
SELECT id, stationname2 AS stationname, stationinfo2, stationprice2, image2
FROM fuel
WHERE stationlocation2 LIKE '%" . $location . "%'
UNION
SELECT id, stationname3 AS stationname, stationinfo3, stationprice3, image3
FROM fuel
WHERE stationlocation3 LIKE '%" . $location . "%'
UNION
SELECT id, stationname4 AS stationname, stationinfo4, stationprice4, image4
FROM fuel
WHERE stationlocation4 LIKE '%" . $location . "%'
ORDER BY stationname $choice;
ORDER BY
的最后UNION
条款适用于整个UNION
,除非括号强制使用它。