2014-01-09 190 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

相关问题