PHP_1 mysqli group by column_1,以column_2结尾

时间:2017-08-23 01:29:53

标签: php mysql mysqli

我正在尝试将mysql数据库中的数据分组,其中column_1为第一个值,column_2为sub,使其成为一对,因此我的想法是使用两列对它们进行分组。

"SELECT * FROM products GROUP BY column_1,column_2"

现在我的问题是column_2值因缩写而异 示例Apple有时候是Apl所以并非每个数据都按照我的计划进行分组,但是后缀与数据示例AppleCSAplCS相同,因此我们的想法是捕获column_2的最后两个字符,末尾为CSSS

现在回到对mysql进行分组,我无法弄清楚如何执行,所以逻辑语句如下。

"SELECT * FROM products GROUP BY column_1 and column_2 that ends with `CS` OR `SS`

最后一部分是捕获重复的条目,所以我需要计算每个返回为true的数据,这会添加查询字符串。

"SELECT *,COUNT(*) AS total FROM products GROUP BY column_1 and column_2 that ends with `CS` OR `SS`

我的目标

the documentation

任何建议都会很棒,提前谢谢!

修改

至于下面的参考解决了我的问题,但我仍然在寻找其他方法,如果仍然不是最好的方法。

SELECT *, COUNT(*) as total, RIGHT(column_2,  2) as sub FROM products GROUP BY column_1,sub ORDER BY total DESC

2 个答案:

答案 0 :(得分:1)

这是你想要的吗?

SELECT
    RIGHT(column_1, 2),
    RIGHT(column_2, 2),
    COUNT(*) AS cnt
FROM products
WHERE
    RIGHT(column_1, 2) IN ('CS', 'SS') AND
    RIGHT(column_2, 2) IN ('CS', 'SS')
GROUP BY
    RIGHT(column_1, 2),
    RIGHT(column_2, 2)

答案 1 :(得分:0)

捕获以“CS'”结尾的column_2的最后两个字符。或者' SS',你会写:
column_2 LIKE '%CSS' OR column_2 LIKE '%SS'。我想知道回答你的问题。