• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如果在mysql中的order by子句后添加,则会添加

mysql 来源:Paramjeet 5次浏览

试图添加if else条件后按子句添加限制。我必须根据条件包含限制。我正在尝试查询,但它会产生错误。不明白它有什么问题,请帮助!如果在mysql中的order by子句后添加,则会添加

我的查询:

select 
    date_format(CONVERT_TZ(session_start, @@session.time_zone, '+05:30'),'%d %b, %y - %h:%i %p') session_start 
FROM user_track 
WHERE user_track.id='xyz123' 
ORDER BY user_track.Sno DESC 
if(count(session_start) > 1,(limit 1,1),(limit 1)) 


===========解决方案如下:

的MySQL(和任何其他RDBMS)不允许这类的LIMIT子句中的逻辑。但一个解决办法可能是使用的行号变量设置为选择性地选择使用的第一条记录,或者第一个记录由一个偏移,即第二个记录:

SET @row_number = 0; 

SELECT t.session_start 
FROM 
(
    SELECT 
     date_format(CONVERT_TZ(session_start, @@session.time_zone, '+05:30'),'%d %b, %y - %h:%i %p') session_start, 
     (@row_number:[email protected]_number + 1) AS rn 
    FROM user_track 
    WHERE id = 'xyz123' 
    ORDER BY Sno DESC 
) t 
WHERE 
    t.rn = CASE WHEN (SELECT COUNT(session_start) FROM user_track 
         WHERE id = 'xyz123') > 1 
       THEN 2 ELSE 1 END 

请注意,我们需要计数移动到一个单独的WHERE子句中的子查询。我们无法在您的主要查询中计算它,这不是进行聚合。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)