开发者

Unique/Distinct values from a PHP/MYSQL query

开发者 https://www.devze.com 2023-03-21 19:45 出处:网络
I have a database with the fields type1, type2, type3, type4 all the way up to type19, along with other fields. What I am trying to do is to get all the fields from those rows and then only echo the f

I have a database with the fields type1, type2, type3, type4 all the way up to type19, along with other fields. What I am trying to do is to get all the fields from those rows and then only echo the fields which are not duplicates.

I ha开发者_JAVA百科ve tried using select distinct type1, type2 etc from products but do not know the php code to put all the fields ($_row['type1'] $_row['type2'] etc) into a single variable and then echo all the distinct values from that variable. Does anyone have any suggestions?


Loop through your results and add them to an array. Then use array_unique() to return only unique values.

http://php.net/manual/en/function.array-unique.php

You should definitely rethink your database design if possible however, since this is a pretty bad way to do things.


If you wanted to use an SQL query only, you can say

SELECT DISTINCT type1 FROM products ORDER BY type1 

An alternative is

SELECT type1, max(1) FROM products GROUP BY type1 

The downside is that you have to do 19 queries if you want to get distinct values for all of your columns.

The upside is that if you want distinct values for one column, it's a lot easier.

You could batch the 19 queries into a for loop, perhaps:

for($i=1;$i<20;$i++) {
  $sql = "SELECT DISTINCT type".$i." FROM products ORDER BY type1";
  // Run the sql query to get the data, then manipulate it as you wish.
}


Use UNION to join the results of 19 queries as a subquery.

SELECT DISTINCT a FROM (
  SELECT DISTINCT type1 AS a FROM products
  UNION
  SELECT DISTINCT type2 AS a FROM products
  UNION 
  ...
  SELECT DISTINCT type19 AS a FROM products
) ORDER BY a
0

精彩评论

暂无评论...
验证码 换一张
取 消