如果MYSQL选择查询中的列相同,则删除所有重复项

时间:2019-07-25 14:24:05

标签: mysql

我目前使用以下方法从数据库中提取今天的数据:

  private fun doesColumnExistInTable(db: SupportSQLiteDatabase, tableName: String, columnToCheck: String): Boolean {
        try {
            db.query("SELECT * FROM $tableName LIMIT 0", null).use { cursor -> return cursor.getColumnIndex(columnToCheck) != -1 }
        } catch (e: Exception) {
            // Something went wrong. we'll assume false it doesn't exist
            return false
        }
    }

字段select TheTime, Thename, theplace from Stats where Selection = "SIR" and Thedata > 19.99 and DATE(TheTime) = CURDATE() 是一个DateTime字段。我想检查此字段中是否有重复的时间。如果有,则将其全部从选择查询中删除。

我只在寻找具有1个不同DateTime的结果。我尝试使用TheTime,但它仍然提取了非离散值。

2 个答案:

答案 0 :(得分:1)

我在数据库上尝试了以下查询:

SELECT DISTINCT createdOn FROM tbldata

createdOn是具有DATETIME默认表达式的CURRENT_TIMESTAMP数据元素。 查询返回不同的值。我的服务器版本是8.0.15,InnoDB引擎

请注意

  

在MariaDB中,DISTINCT子句不会忽略NULL值。因此,在SQL语句中使用DISTINCT子句时,结果集将包括NULL作为唯一值。

https://www.techonthenet.com/mariadb/distinct.php

答案 1 :(得分:0)

尝试按时间分组。

SELECT DISTINCT正在使用键,因此您必须使用TheTime作为键才能使它起作用。