我有一个名为domain的字段的表,其中包含如下数据:
domain.com
sub1.domain.com
sub2.domain.me
sub3.domain.co.uk
我想编写一个只获取数据库中基域计数的查询;这将是3基于:
domain.com
sub2.domain.me
sub3.domain.co.uk
任何人都知道如何完成这项工作?我已经挂断了有多个结局的域名(.co.uk)。
答案 0 :(得分:0)
您可以使用以下内容:
SELECT
COUNT(DISTINCT
SUBSTRING_INDEX(TRIM(TRAILING '*' FROM col), '.',
CASE WHEN TRIM(TRAILING '*' FROM col) LIKE '%.uk' THEN -3 ELSE -2 END))
FROM
domains;
请参阅小提琴here。
修改强>
我再次阅读你的问题,我认为你正在寻找这样的事情:
SELECT
DISTINCT d1.col
FROM
domains d1 LEFT JOIN domains d2
ON LOCATE(REVERSE(d2.col), REVERSE(d1.col))=1
AND LENGTH(d1.col)>LENGTH(d2.col)
WHERE
d2.col IS NULL
小提琴是here。