php - 如何编写查询以抑制结果集列中的连续重复值?

标签 php mysql

在选择表时,我需要在列名称 (TGroup_Name) 下将重复的值设置为空或 null

例如:

在下表中,列名称 (TGroup_Name) 在两行中具有重复值 (ED_1)。所以我想使第二行值为空或为空(ED_1)。但不应影响整行。


TGID    TParent_Group_ID    TGroup_Name TGroup_Type TEID    TEmp_Group_ID   TEmp_Name   TEmp_Type
1              0                MD            G      10           1           Mallik        GH
10             1                ED_1          G       5          10           Thevan        GH
10             1                ED_1          G       7          10           Gupta          U
11             1                ED_2          G      11          11           Dinesh        GH

最佳答案

大多数开发人员认为最好使用应用程序端过程代码(如 Java 或 PHP)在他们的结果集中抑制此类连续重复值。

但是您可以像这样在 SQL 的 MySQL 变体中执行此操作 (http://sqlfiddle.com/#!2/691f5/4/0)。

SELECT TGID,
       TParent,
       IF(Group_ID=@PREV,'',@PREV:=Group_ID) AS Group_ID,
       TGroup_Name
  FROM TABLE1,
       (SELECT @PREV:='xxxx') AS i
 ORDER BY TABLE1.TGID 

IF@prev 的运行值相结合可以抑制连续重复。额外的 (SELECT...) 子查询用于初始化 @prev

这是一项很难做好的事情。例如,如果您只是说 ORDER BY TGID 而不是我所显示的内容,结果就会出错。它也完全不可移植到其他品牌和型号的表服务器。

关于php - 如何编写查询以抑制结果集列中的连续重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22354754/

相关文章:

PHP MySQLi Fetch Array Auto Increment int 失败

java - 如何在java MySQL中实现离线同步?

mysql - 获取两个 SELECT 语句之间的差异

php-fpm 配置 : unknown entry 'access.log'

php - 当使用 cron 运行 ajax 时,它不执行我需要保存数据的 PHP 文件

PHP - 更改表单提交内容 - 上传

php - Doctrine 查询语法错误

php - 建立高效且有效的开发流程

php - 正则表达式:删除方案,除非它是 http(s)。 (捕获负后视模式)

PHP mysql session 数组