我希望數據庫顯示除第一行和最後一行以外的所有行,因爲我有它們的CSS代碼。Mysql select除第一行和最後一行以外的所有行
我嘗試這樣做:
SELECT * FROM db
WHERE
keywords LIKE '%example%' LIMIT 9999 OFFSET 1
AND
keywords LIKE '%example%' DESC LIMIT 9999 OFFSET 1
因爲行數可能會增加,我不能寫一個確切的數字。
我希望數據庫顯示除第一行和最後一行以外的所有行,因爲我有它們的CSS代碼。Mysql select除第一行和最後一行以外的所有行
我嘗試這樣做:
SELECT * FROM db
WHERE
keywords LIKE '%example%' LIMIT 9999 OFFSET 1
AND
keywords LIKE '%example%' DESC LIMIT 9999 OFFSET 1
因爲行數可能會增加,我不能寫一個確切的數字。
有真的沒有r陳奕迅被試圖剪掉在SQL級別這些值查詢複雜,你可以這樣做:
$results = $db->query(/* regular query with all results */);
array_pop($results);
array_shift($results);
// Now use $results, which now contains only the "middle" content
如果你真的想在DB級別,你可以使用:
SELECT * FROM db
WHERE keywords LIKE '%example%'
AND id <> (SELECT MAX(ID) FROM TABLE)
AND id <> (SELECT MIN(ID) FROM TABLE)
我覺得這是最明智的答案 –
你可以試試這個,例如:
SELECT * FROM TABLE WHERE ID != (SELECT MAX(ID) FROM TABLE) LIMIT 1,9844674507370
但是就像我在評論說:這是你的PHP代碼處理這個問題,避免使2個或更多的請求
您是強烈建議可以使用UNION
等作爲
SELECT * FROM db WHERE keywords LIKE '%example%' order by keywords ASC limit 1 UNION SELECT * FROM db WHERE keywords LIKE '%example%' order by keywords DESC limit 1;
1:簡單,你可以處理這件事情在PHP像下面。避免兩個查詢
$last_record =count($records)-1;
$i=0;
foreach($records as $key=>$row)
{
if($i==0){
//apply the css
}
if($i== $last_record){
//apply the css
}
}
查詢:
SELECT * FROM db WHERE keywords LIKE '%example%'
你可以做到這一點,而無需使用LIMIT
和OFFSET
SELECT * FROM table_name WHERE id != (SELECT MAX(id) FROM table_name) AND id != (SELECT MIN(id) FROM table_name)
SELECT * FROM db
WHERE
keywords LIKE '%example%'
AND
id != (SELECT MAX(id) FROM db)
AND
id != (SELECT MIN(id) FROM db)
此ID將您的自動遞增鍵
這工作,謝謝! – Kakotas7
可能的複製[MySQL的:如何從表中選擇所有行除了最後一個](https://stackoverflow.com/questions/315621/mysql-how-to-select-all-rows-from-a-table-except-最後一個) – user6069744
強烈建議您使用PHP代碼處理此問題,以避免發出2個或更多請求 – user10089632
Hi @Kakotas如果下面提供的答案解決了您的問題,您能否將其標記爲已接受? – Cyril