2014-01-09 186 views
0

如何僅使用PHP和MYSQL從列中檢索唯一值?從一列中選擇不同的值

這裏的表1的內容:

id  value  
_____________________ 
1  Max Power 
2  Homer Simpson 
3  Max Power 
4  Lisa Simpson 
5  Lisa Simpson 

所以,很顯然,我希望這些結果:

- Max Power 
- Homer Simpson 
- Lisa Simpson 

,但我仍然得到:

- Max Power 
- Homer Simpson 
- Max Power 
- Lisa Simpson 
- Lisa Simpson 

的SQL語句我試過的如下:

SELECT DISTINCT value FROM column1 

SELECT * FROM column1 GROUP BY value 

顯然這應該工作。所以這裏是我的完整的SQL語句,以防萬一有什麼可疑的東西:

<?php 
$dblink = mysql_connect(‘host’, ‘username’, ‘password’) or die(mysql_error()); 
mysql_select_db(‘database_name); 

$rs = mysql_query('SELECT DISTINCT value FROM table1, $dblink); 

while($row = mysql_fetch_array($rs)) { 

$rowValue = $row['value']; 

$explodeRowValue = (explode("||",$rowValue)); 

foreach ($explodeRowValue as $value_name) { 
    $data[] = array(
      'key' => $value_name, 
      'value' => $value_name 
     ); 
} 
} 
echo json_encode($data); 
flush(); 

那麼,你們覺得呢?這讓我瘋狂!

+0

你的代碼中有'的mysql_query錯誤(「SELECT DISTINCT值FROM表1,$ DBLINK);'不要有收盤配額。 –

+0

你的DISTINCT查詢應該可以正常工作(即使你指定了DISTINCT,你也會得到一個「隨機」的ID,而不是一個穩定的結果)。也許,字符串有些不同,可能是空格(正如阿齊茲的答案所暗示的),但可能存在某種編碼問題。 –

+0

@ Clockwork-Muse Whitespace在這種情況下不是問題。今晚我會繼續絞盡腦汁。 –

回答

0

試試這個:

SELECT DISTINCT TRIM(value) FROM table1 
+0

我試過它TRIM返回空白值!所以這不是解決方案.Thx的建議雖然。 –

0

試試這個

$rs = mysql_query("SELECT DISTINCT value FROM table1", $dblink); 
+0

鑑於他的代碼不應該運行_at all_沒有關閉''',我懷疑這將解決問題。 –

+0

@ user1844933謝謝你捕捉......但這不是問題,它仍然吐出重複! –

+0

什麼是表名?如果您的tbl名稱column1然後嘗試「SELECT DISTINCT值FROM column1」 – user1844933

相關問題