[請益] 查詢資料庫的方法

看板PHP作者 (灝也)時間16年前 (2009/03/26 00:17), 編輯推噓9(908)
留言17則, 9人參與, 最新討論串1/1
若我想靠讀取某欄位的特定數值分別讀取出來 有以下兩種寫法(或許更多...) 1.先分開取出要的,要用的時候就直接拿不同的row用 mysql_select_db($database_members, $members); $query8 = "SELECT * FROM A WHERE Anumber LIKE '8%'"; $D8 = mysql_query($query1, $members) or die(mysql_error()); $row8 = mysql_fetch_assoc($D8); $total_D8 = mysql_num_rows($D8); mysql_select_db($database_members, $members); $query9 = "SELECT * FROM A WHERE Anumber LIKE '9%'"; $D9 = mysql_query($query9, $members) or die(mysql_error()); $row9 = mysql_fetch_assoc($D9); $total_D9 = mysql_num_rows($D9); 2.另外一種是像這樣,先fetch到同一個row上,然後要用的時候再分別進行判斷 mysql_select_db($database_members, $members); $query = "SELECT * FROM A "; $D = mysql_query($query, $members) or die(mysql_error()); $row = mysql_fetch_assoc($D); $total = mysql_num_rows($D); //需要用時,這邊要跑個迴圈... if ($row['Anumber']=='8%') echo balabalabala if ($row['Anumber']=='9%') echo balabalabala 想請問哪一種寫法比較好? 個人現在是偏向第二種,想問問各位的意見:) 簡單的問就是說 我想請益是要先在讀取資料庫的時候就先判斷好所需要的 還是先把他讀取出來再用PHP的指令去判斷? -- 還是說我該去db版問XD" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.200.221

03/26 00:42, , 1F
我習慣1 XD"
03/26 00:42, 1F

03/26 00:44, , 2F
讀取出來再判斷會比較好
03/26 00:44, 2F

03/26 01:19, , 3F
你的兩種作法都不太好, 第一種要查兩次
03/26 01:19, 3F

03/26 01:19, , 4F
第二種沒任何條件限制 是很糟糕的查詢
03/26 01:19, 4F

03/26 01:19, , 5F
最簡單的原則就是, 只撈你要用的資料
03/26 01:19, 5F

03/26 06:14, , 6F
改成Anumber LIKE '8%' or Anumber like '9%'
03/26 06:14, 6F

03/26 09:23, , 7F
REGEXP 是不錯的選擇
03/26 09:23, 7F

03/26 10:40, , 8F
我也覺得只撈要的資料就好
03/26 10:40, 8F

03/26 10:46, , 9F
通常都是撈多一點,因為以後可能會改code,就很方便
03/26 10:46, 9F

03/26 10:46, , 10F
前提是,不是在做大量資料search的時候= ="
03/26 10:46, 10F

03/26 11:44, , 11F
我的原則是MYSQL做愈簡單的事愈好 ~ 剩下交給程式做
03/26 11:44, 11F

03/26 14:48, , 12F
SQL查詢下的好,程式少寫不少...
03/26 14:48, 12F

03/26 18:00, , 13F
我比較推 sql 能愈簡單愈好,不過這篇的 like,應該
03/26 18:00, 13F

03/26 18:00, , 14F
會用到 full table scan,所以雖然很簡單,不過還是
03/26 18:00, 14F

03/26 18:00, , 15F
盡量避免囉!
03/26 18:00, 15F

03/26 21:12, , 16F
因為資料量不大 所以沒想過第二種會撈過頭的情況XD"
03/26 21:12, 16F

03/26 21:14, , 17F
謝謝各位指教 : )
03/26 21:14, 17F
文章代碼(AID): #19obaFhH (PHP)
文章代碼(AID): #19obaFhH (PHP)