简体   繁体   English

显示值在 mysql 查询中是否唯一

[英]show if a value is unique in mysql query

I have a MySQL query.我有一个 MySQL 查询。 In this query I want to make a column where I can show if the value in the column Phone is unique or not.在这个查询中,我想创建一个列,我可以在其中显示Phone列中的值是否唯一。 How to do this?这该怎么做?

This is the query:这是查询:

SELECT ID, Phone
FROM tbltest

We can use COUNT() here as an analytic function:我们可以在这里使用COUNT()作为解析函数:

SELECT ID, Phone,
       CASE WHEN COUNT(*) OVER (PARTITION BY Phone) = 1 THEN 'unique' END AS label
FROM tbltest
ORDER BY ID;

Here is a version which should work on earlier versions of MySQL:这是一个适用于早期版本的 MySQL 的版本:

SELECT t1.ID, t1.Phone,
       CASE WHEN t2.cnt = 1 THEN 'unique' END AS label
FROM tbltest t1
INNER JOIN
(
    SELECT Phone, COUNT(*) AS cnt
    FROM tbltest
    GROUP BY Phone
) t2
    ON t2.Phone = t1.Phone;

I tried the code on localhost with mysql 7.4.20 and the code works good.我在 localhost 上使用 mysql 7.4.20 尝试了代码,代码运行良好。 When I tried it on my productions server with mysql 5.6.45 the code didn't work.当我使用 mysql 5.6.45 在我的生产服务器上尝试它时,代码不起作用。 How to change the code that it is also working on mysql 5.6.45 ?如何更改它也在 mysql 5.6.45 上运行的代码?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM