2016-09-06 86 views
-1

我有一个像每个产品具有多个相同值的数据库,并且我想在上面显示MAX相同的值产品。如何在MYSQL中使用MAX获取具有相同记录的产品

Example: 

title   product    category 

jack   nnn33    books 
tom   nnn33    books 
jay   vvv34    books 
dex   lxxx3    books 
rio   nnn33    books 
james   nnn33    books 

我想显示nnn33作为最大值记录在上面。

查看下面的查询。

$query = mysqli_query($conn, 
    "SELECT id,title,product,category FROM data WHERE category = 'Books' ORDER BY MAX(product) DESC LIMIT 10"); 
+0

最大字符串或计数? – Drew

+0

通过计数得到最大的内部派生,然后外部循环首先显示他们? – Drew

+0

一个字符串的最大值'nnn33'多次具有相同值的产品应该位于顶部 – Aliza

回答

2

最大计数物品列表第一,减少计数跟随。

架构

create table myTable7 
( title varchar(100) not null, 
    product varchar(100) not null, 
    category varchar(100) not null 
); 
insert myTable7 values 
('jack',   'nnn33',    'books'), 
('tom',   'nnn33',    'books'), 
('jay',   'vvv34',    'books'), 
('dex',   'lxxx3',    'books'), 
('rio',   'nnn33',    'books'), 
('james',   'nnn33',    'books'); 

查询

select t7.title,t7.product,t7.category 
from 
( select product,count(*) as theCount,@rownum:[email protected]+1 as theOrder 
    from mytable7 
    cross join (select @rownum:=0) xParams 
    group by product 
    order by theCount desc 
) d 
join mytable7 t7 
on t7.product=d.product 
order by d.theOrder,t7.title; 
+-------+---------+----------+ 
| title | product | category | 
+-------+---------+----------+ 
| jack | nnn33 | books | 
| james | nnn33 | books | 
| rio | nnn33 | books | 
| tom | nnn33 | books | 
| jay | vvv34 | books | 
| dex | lxxx3 | books | 
+-------+---------+----------+ 
6 rows in set (0.00 sec) 
+0

选择中的计数似乎是不必要的 – Strawberry

+0

它不在最终输出中。有必要根据操作要求 – Drew

+0

我不这么认为。 – Strawberry

相关问题