在執行時間O(1)中訪問mysql字段假定我們有一個包含一些行的mysql表。我們想檢查某個特定的記錄,比如它的'index'= 0。通過PHP,後作出這樣的查詢「SELECT * FROM MY_TABLE」我們總是使用像mysql_fetch_array的命令,然後用這個結構:如何通過select *並使用php
while ($row = mysql_fetch_array($sql_result))
{
if ($row['index'] == 0)
return true;
}
但這種方法獲取時間爲O(n)。 如何優化這個算法到O(1)? ,然後寫下我們搜索過的整個行?
請注意,我想通過php找到特定的行,而不是像SELECT ... WHERE index = 1那樣的sql。 換句話說,我想從mysql_fetch_array產生的數組中獲取行。
「我們總是使用像mysql_fetch_array這樣的命令」。我們總是使用mysqli_ *或PDO代替mysql_ *函數,因爲mysql_ *函數已被棄用。 – vaso123 2014-11-06 13:37:00
像@ @ lolka_bolka說,請閱讀[這個問題。](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – Vanitas 2014-11-06 13:38:16
你可以使用'LIMIT'來做這個,例如'SELECT * FROM My_table ORDER BY ID LIMIT 120,1;'將返回第120行。 A **非常重要的一點是,SQL中的數據沒有隱式順序,爲了使「行20」具有任何意義,您必須**提供一個「ORDER BY」子句。 – GarethD 2014-11-06 13:39:53