Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取不同的名称首先在字符串中用括号分解,而不是在mysql中排序_Php_Mysql - Fatal编程技术网

Php 获取不同的名称首先在字符串中用括号分解,而不是在mysql中排序

Php 获取不同的名称首先在字符串中用括号分解,而不是在mysql中排序,php,mysql,Php,Mysql,查询前我的表 我的问题 <?php $sql="SELECT distinct(SUBSTRING(name,1,instr(name,'(')-1)), pid,sort_order from extra GROUP BY (SUBSTRING(name,1,instr(name,'(')-1)) ORDER BY sort_order ASC LIMIT 0,15"; ?> 因此,如果您希望产品具有最小排序顺序,且以相同的3个Letter开始 SELECT ex

查询前我的表

我的问题

<?php $sql="SELECT distinct(SUBSTRING(name,1,instr(name,'(')-1)), pid,sort_order from extra GROUP BY (SUBSTRING(name,1,instr(name,'(')-1)) ORDER BY sort_order ASC LIMIT 0,15"; ?>

因此,如果您希望产品具有最小排序顺序,且以相同的3个Letter开始

 SELECT 
     ext.*
  FROM extra ext
  INNER JOIN (
  -- this query return the sub_name with the min_order for that sub_name
  SELECT 
        distinct(SUBSTRING(name,1,instr(name,'(')-1)) as 'sub_name',
        min(sort_order)
  from extra
  group by sub_name
  ) min_extra on SUBSTRING(extname,1,instr(ext.name,'(')-1) = min_extra.sub_name
 ORDER BY ext.sort_order ASC LIMIT 0,15"; 

我通过这个查询得到了解决方案

SELECT SUBSTRING(pp.name,1,instr(pp.name,'(')-1),(select e.pid from extra as e where SUBSTRING(e.name,1,instr(pp.name,'(')-1)=SUBSTRING(pp.name,1,instr(pp.name,'(')-1) order by e.sort_order asc limit 1) as pid from extra as pp group by SUBSTRING(name,1,instr(name,'(')-1) order by pp.sort_order asc

使用group by时,需要在两个字段pid上执行aggrecate函数,排序顺序您需要的确切数字是以相同的三个字母开头的名称数?我需要唯一的字符串名称按排序顺序ASC排序,然后显示结果。编辑您的问题并解释为什么pid=3和7,因为7是以yyy开头的名称的最大值,但3不是最大值。请查看“名称”开始列和xxx。当我运行我的查询时,有4种产品,它给了我第一种产品,但我要求产品xxx,排序顺序将是2,即ASC的订单。我只是假设您想要什么,但您可以编辑查询以获得您想要的