我有mysql表,列id
,pos
和status
。
而且我需要將pos
的值精確變換爲id
,並將其與最接近的較小值pos
對應。但我只需要計算與status = 1
行。
換句話說,它應該像這樣工作:進行5 mysql查詢到1
$pos = mysql_result(mysql_query("select pos from foo where id = $id"),0);
$min = mysql_result(mysql_query("select min(pos) from foo where status = 1"),0);
if($pos != $min){
$i = mysql_result(mysql_query("SELECT pos from foo where pos < $pos ORDER by pos DESC LIMIT 1"),0);
mysql_query("update tbc_sidebar set pos = $i where id = $id");
mysql_query("update tbc_sidebar set pos = pos + 1 where id <> $id AND pos = $i");
}
它工作得很好這樣的,但我認爲這不是最好的解決辦法有,因爲一個簡單的事情,5個查詢。有沒有辦法如何將這一切放到更少的查詢中?謝謝!
它工作,很簡單,爲什麼複雜的東西? – 2012-03-27 21:42:44