2012-12-25 56 views
1

我有這樣的代碼就在這裏:array_unique只給我一個結果

$bestffffs = $db->query("SELECT * FROM chapter WHERE ch_trans = '".$wordss."' ORDER BY ch_trans DESC "); 
    while($ftffffs = $db->fetch_array($bestffffs)) 
    { 
     $bestffffrs[] = $ftffffs; 

    } 
    $result = array_unique($bestffffrs); 

MySQL查詢至少有45分的結果!但是當我嘗試使用array_unique()時,我的結果減少到了一個!我是否在錯誤的地方使用代碼?我嘗試將它放置到處,但沒有任何工作!

我不能在我的MYSQL查詢中使用Group by,因爲我想從表中的多個字段中刪除重複項。 Group by將僅刪除我選擇的字段的重複項。如果使用MYSQL還有其他靈魂事件請在這裏包括它。

回答

1

你可以嘗試的一件事是DISTINCT。您可以在多個字段中使用DISTINCT:

SELECT DISTINCT(one and two and three...and n) FROM `your_table`... 

給一個鏡頭。如果這不起作用,請嘗試:

SELECT distinctrow field_one, distinctrow field_two, distinctrow field_three FROM `your_table`; 
+0

你的答案真的很有幫助!但是,這樣我就會在我的三個領域裏面沒有重複。但是這些字段之間有一些重複的值!我怎麼能擺脫他們? – shnisaka

+0

DISTINCT和distinctrow關鍵字將確保所有這些字段是不同的。你可以放置儘可能多的領域,只要你想。如果這沒有幫助,你能澄清一點嗎?我想我可能不清楚。 –

+0

DISTINCT(一,二和三)將返回三個字段字段一個字段二和字段三。它將基本上顯示它們之間的所有組合。我需要的是用三個字段刪除任何重複的值並將它們顯示爲一個字段。 – shnisaka

3

指定SORT_REGULAR作爲第二個參數。

否則,它將它們作爲字符串進行比較。任何數組都被轉換爲字符串"Array",這當然意味着它們都是「相等的」。

+0

如何從MYSQL中獲取數組?你能解釋一下還是給我一個例子? – shnisaka