Mysql 选择字段中数据相同但大小写不同的行
我在MySQL中有一个表,其中包含具有字段用户名的行。现在我想选择那些具有相同用户名但用户名大小写不同的行,比如kMalta和kMaltaMysql 选择字段中数据相同但大小写不同的行,mysql,select,Mysql,Select,我在MySQL中有一个表,其中包含具有字段用户名的行。现在我想选择那些具有相同用户名但用户名大小写不同的行,比如kMalta和kMalta 如何使用SELECT语句执行此操作?如果要捕获特定用户名: 从UPCASEusername='KMALTA'的用户中选择* 如果要捕获具有重复项的所有行: 从用户u1、用户u2中选择u1.*其中UPCASEu1.username=UPCASEu2.username和u1.id!=u2.id如果要捕获特定用户名: 从UPCASEusername='KMALTA
如何使用SELECT语句执行此操作?如果要捕获特定用户名: 从UPCASEusername='KMALTA'的用户中选择* 如果要捕获具有重复项的所有行:
从用户u1、用户u2中选择u1.*其中UPCASEu1.username=UPCASEu2.username和u1.id!=u2.id如果要捕获特定用户名: 从UPCASEusername='KMALTA'的用户中选择* 如果要捕获具有重复项的所有行: 从用户u1、用户u2中选择u1.*其中UPCASEu1.username=UPCASEu2.username和u1.id!=u2.id试试这个:
SELECT a.username
FROM tab a
JOIN tab b
ON LOWER(a.username) = LOWER(b.username)
GROUP BY a.username
HAVING COUNT(a.username) > 1
试试这个:
SELECT a.username
FROM tab a
JOIN tab b
ON LOWER(a.username) = LOWER(b.username)
GROUP BY a.username
HAVING COUNT(a.username) > 1
您可以尝试以下方法:
SELECT *
FROM users
WHERE LOWER(username) IN (
SELECT LOWER(username)
FROM users
GROUP BY LOWER(username)
HAVING COUNT(id) > 1
)
您可以尝试以下方法:
SELECT *
FROM users
WHERE LOWER(username) IN (
SELECT LOWER(username)
FROM users
GROUP BY LOWER(username)
HAVING COUNT(id) > 1
)
谢谢,但我希望它是通用的,而不是仅捕获KMalta。那么,您希望捕获什么?所有已存在于不同大小写中的用户名行?谢谢,但我希望它是通用的,而不是仅捕获KMalta。那么,您希望捕获什么?所有已存在于不同大小写中的用户名行?