我正在访问名称与公司相关联的数据库。名称在表格中是唯一的。可能有多个人拥有相同的公司。如果重复,我只需要返回公司的ONCE实例,这样我就可以根据公司显示信息。我的代码如下:
$result = $pdo->query('SELECT * FROM vendoreducation WHERE company LIKE "TestCompany" GROUP BY company');
这显然不起作用,我不想指定个别公司。我只是想能够返回数据库中所有公司的列表。如果有多个条目具有相同的公司名称,则只返回其中一个。
修改
我选择的答案是正确的方向,但我最终得到的答案是m.buettner
的回答。
答案 0 :(得分:2)
我会在评论中要求澄清,但我缺乏代表,对不起。如果每个公司只需要一行,那么其他列是什么呢?或者你真的只是想找出所有公司的名单?
对于后者,这应该做:
$result = $pdo->query('SELECT DISTINCT company FROM vendoreducation;');
当然,您还可以包含对同一公司的所有行都相同的任何列。但是,由于某些列可能具有不同的值(例如您提到的名称),因此将DISTINCT
与*
一起使用可能只会再次为您提供所有行。
编辑:如果您想要为每家公司提供一整行,您只需使用上述行检索到的所有公司的列表,然后使用{{查询每一家公司的一行1}}依次解决每个公司的问题。但也许你应该考虑normalization,如果这是一个选项(即如果你可以改变数据库)。
答案 1 :(得分:0)
使用DISTINCT
$result = $pdo->query('SELECT DISTINCT * FROM vendoreducation WHERE company LIKE "TestCompany"');
答案 2 :(得分:0)
$result = $pdo->query('SELECT * FROM vendoreducation WHERE company LIKE "TestCompany" GROUP BY company LIMIT 1');
OR
$result = $pdo->query('SELECT distinct * FROM vendoreducation WHERE company LIKE "TestCompany" GROUP BY company');