【问题标题】:How to get DISTINCT of a SUBSTRING in MySQL如何在 MySQL 中获取 SUBSTRING 的 DISTINCT
【发布时间】:2022-10-24 09:49:12
【问题描述】:

我有一个疑问,

SELECT t2.id, t1.image, SUBSTRING(t2.start_time,1,10) AS mytime, 
  t2.user 
FROM post_table t1 
INNER JOIN watchUserList t2 ON t1.id = t2.movie_id 
WHERE user = 'john@gmail.com' 
ORDER BY id DESC;

在这个查询中,我想获取DISTINCTmytime。我试过DISTINCT(SUBSTRING(t2.start_time,1,10)) AS mytimeSUBSTRING(t2.start_time,1,10) AS DISTINCT(mytime)。但两者都不起作用。如何在 MySQL 中获取不同的子字符串。有什么办法吗?

【问题讨论】:

  • 您可以添加一些具有所需输出的样本(输入)数据吗?因为目前还不清楚您是否不知道 DISTINCT 是 SELECT 的修饰符,还是您正在尝试不同的东西。
  • 为什么将日期时间视为字符串?有一些函数可以从日期时间获取部分,例如YEAR()MONTH()DAY() 或通过DATE() 获取日期时间的日期部分
  • DISTINCT is not a function.。这是一个查询修饰符。您必须在 SELECT 关键字之后、所有列之前写 DISTINCTDISTINCT 修饰符适用于整行,而不仅仅是一列。

标签: mysql


【解决方案1】:

正确的语法是

SELECT DISTINCT t2.id, t1.image, SUBSTRING(t2.start_time,1,10) AS mytime, 
  t2.user 
FROM post_table t1 
INNER JOIN watchUserList t2 ON t1.id = t2.movie_id 
WHERE user = 'john@gmail.com' 
ORDER BY id DESC;

但请注意,它在字段列表中的所有字段中都不同。

多列不同 当我们在多列上使用 MySQL Distinct 时,SELECT 语句会写入多列的唯一组合,而不是唯一的单个记录。

Distinct On Multiple Columns

【讨论】:

    猜你喜欢
    • 2012-01-03
    • 1970-01-01
    • 2015-01-28
    • 2015-12-15
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多