Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择字段中数据相同但大小写不同的行_Mysql_Select - Fatal编程技术网

Mysql 选择字段中数据相同但大小写不同的行

Mysql 选择字段中数据相同但大小写不同的行,mysql,select,Mysql,Select,我在MySQL中有一个表,其中包含具有字段用户名的行。现在我想选择那些具有相同用户名但用户名大小写不同的行,比如kMalta和kMalta 如何使用SELECT语句执行此操作?如果要捕获特定用户名: 从UPCASEusername='KMALTA'的用户中选择* 如果要捕获具有重复项的所有行: 从用户u1、用户u2中选择u1.*其中UPCASEu1.username=UPCASEu2.username和u1.id!=u2.id如果要捕获特定用户名: 从UPCASEusername='KMALTA

我在MySQL中有一个表,其中包含具有字段用户名的行。现在我想选择那些具有相同用户名但用户名大小写不同的行,比如kMalta和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。那么,您希望捕获什么?所有已存在于不同大小写中的用户名行?