php mysql查詢分頁等的一些細節

2021-08-08 08:57:44 字數 1438 閱讀 9757

模糊查詢:

以前我們用的查詢如下

select job_id, title, description from riskyjobs where title='bull fighter';//搜尋的大小寫不重要,mysql where是不區分大小寫的,=操作符要求這倆個串完全匹配。

利用like查詢能夠找到與搜尋串中某以部分匹配的結果:

select job_id, title, description from reskyjobs where title like '%fighter%';//利用關鍵字like可以查詢與引號中詞不完全相等的匹配,%符號是萬用字元代表這個詞之前或之後的所有其他字元。like子句通常與萬用字元結合使用,萬用字元代表所匹配資料中的字元。在sql中%可以代表0個或多個字元。如果在查詢中將這個萬用字元放在乙個搜尋項之前或之後,就會告訴sql:只要這個搜尋項出現在資料中的某個位置就返回結果,而不論它前面或後面有多少個字元。

有時候我們需要把客戶輸入的搜尋項在後台給分解成為很多個單詞,這就需要explode函式

$search_words=explode(' ','tipper cow');//這個函式有倆個引數,第乙個引數是定界符,這可以是乙個或多個字元,只是在**分解。我們使用了乙個空格作為定界符,這說明搜尋串會在出現先空格處進行分解。定界符本身不會包含在子串中,第二個引數是分解的串。最後的結果會以陣列的形式儲存在searchwords裡面。

分解成很多單串以後,我們需要把它們每個都單獨的搜尋,這就有可能需要乙個把這寫分開的串經過一定的格式給結合到一起,這就需要implode函式:

$where_clause=implode(' or ',$where_list);//第乙個引數是將各個串合併為乙個串時各個串之間會增加這個定界符。第二個引數必須是個串陣列。

有時我們需要替換一些我們不需要的搜尋字元這就需要str_replace函式:

$clean_search=str_replace('thousands','hundreds','make thousands of dollars your very first month.');//第乙個引數是希望替換的紫川,第二個引數是取代它插入的字串,第三個是需要修改的總串。

有時我們只需要乙個串的一部分,這就需要substr函式:

substr(string,start,length)//第乙個引數是總串,第二個引數是開始的位置,第三個引數是返回的串的字元個數。第二個引數可以是負數,負數的話就是從右往左數。

select * from riskyjobs where description like '%bull%' or description like '%fighter%' or description like '%matador%'order bydescription;//查詢結果排序。limit 5;//最多隻顯示五個結果。limit 10,5;第乙個引數告訴跳過多少行,第二個引數表示返回多少個跟以前一樣。這個對分頁作用很大。

PHP MySQL分頁的優化

今天在本機布置 的時候,發現後台有乙個功能的分頁特別的慢,要十多秒才能開啟。本身機器也有一點慢,但是才1000多條資料就慢的不得了,以後怎麼辦。分頁的那個sql語句太複雜,有條件,有外鏈結,有排序,非常的慢,上網查了幾種優化方式。最後對 進行了優化,之後2秒就可以開啟了。sql stringx se...

PHP MySQL實現簡單的分頁功能

今天對之前的使用者管理模組實現了乙個簡單的分頁功能,大致樣式如下 接下來談談具體實現的步驟 1 既然涉及到分頁,首先肯定是從資料庫獲取的資料就有限制,這個限制就是用limit,比如下面這個sql語句 sql select from users order by id desc limit 0,3 其...

php mysql分頁類的入門例項

php mysql分頁類的簡單 一 php分頁類 複製 示例 class pagemodel www.xfcodes.com 總頁面數一頁展示完 if allpagecount pagecountlength return arr 前後的長度 halflength floor pagecountle...