我不知道別人是關於,但如果你知道,當FB_TYPEID
是1
它被認爲是一種功能,當FB_TYPEID
是2
,它被認爲是一個好處,那麼排序是容易
使用此查詢:
SELECT
`FB_TYPEID`,
`FB_TEXT`
FROM
`FB_DATA`
WHERE
`FB_MODELID` = theModelIdYouAreLookingFor AND
`FB_TYPEID` IN (1,2)
ORDER BY
CASE `FB_TYPEID`
WHEN 1 THEN 0
WHEN 2 THEN 1
# switch this to:
# WHEN 2 THEN 0
# WHEN 1 THEN 1
# if you want benefit to show first
END
確保您保護自己免受SQL injection的侵害。您現在使用mysqli
進行查詢的方式容易受到SQL注入的影響(假設$sku_modelid
未被過濾)。你應該使用帶有綁定參數的預準備語句。喜歡的東西:
$sql = '
SELECT
`FB_TYPEID`,
`FB_TEXT`
FROM
`FB_DATA`
WHERE
`FB_MODELID` = ? AND
`FB_TYPEID` IN (1,2)
ORDER BY
CASE `FB_TYPEID`
WHEN 1 THEN 0
WHEN 2 THEN 1
END
';
if($statement = $mysqli->prepare($sql))
{
// bind $sku_modelid to the first (and only) questionmark (placeholder) as an integer
$statement->bind_param('i', $sku_modelid);
// execute the prepared statement
if($statement->execute())
{
// bind FB_TYPEID to $typeId and FB_TEXT to $text
$statement->bind_result($typeId, $text);
while($row = $result->fetch_assoc())
{
// echo the table row
if($typeId == 1) echo '<tr>';
echo '<td>' . $text . '</td>';
if($typeId == 2) echo '</tr>';
}
}
}
(可能是失去了一些東西,因爲我從來沒有使用mysqli
庫,但我相信它應該工作。)
你怎麼知道哪個是第一位的? – Pentium10
你知道我真的不知道..我只是搜索了一下這個型號ID,這就是出現的情況,並且它完美匹配。 – Drew
你需要一個訂單ID,並檢查下面的第一個aswer。 – Pentium10