在字段中选择具有相同数据但在不同外壳中的行

时间:2011-10-27 07:52:00

标签: mysql select

我在MySQL中有一个表,其中包含具有字段用户名的行。现在我想选择那些具有相同用户名但在用户名中使用不同大小写的行,例如kMalta和Kmalta。

如何使用SELECT语句执行此操作?

3 个答案:

答案 0 :(得分:4)

如果您想要捕获特定的用户名:

SELECT * FROM users WHERE UPCASE(username) = 'KMALTA'

如果要捕获带有重复项的所有行:

SELECT u1.* FROM users u1, users u2 WHERE UPCASE(u1.username) = UPCASE(u2.username) AND u1.id != u2.id

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

您可以尝试:

SELECT *
  FROM users
 WHERE LOWER(username) IN (

      SELECT LOWER(username)
        FROM users
    GROUP BY LOWER(username)
      HAVING COUNT(id) > 1

)