MySQL SELECT определяемая пользователем переменная КАК псевдоним WHERE определяемая пользователем переменная равна? - PullRequest
0 голосов
/ 04 августа 2020

Я использую пользовательскую переменную в MySQL для группировки почтовых индексов. Теперь я хочу выбрать только результаты со столбцом rownum, равным 1. Как выбрать rownum в предложении WHERE по псевдониму rownum?

Следующий запрос дает мне желаемые результаты ..

SET @row := 0;
SELECT  
  (CASE WHEN @plz <> user.plz THEN @row := @row +1 ELSE @row END) AS rownum, @plz:= user.plz, uid
             
FROM 
  (SELECT @row := 0) AS var,
  user 

Результаты:

rownum    plz    uid 
1         2378   92014
1         2378   87323
2         6766   91344
2         6766   90342
3         9999   34353

Теперь я хочу выбирать только по спецификации c rownum. Как выбрать по псевдониму rownum?

SELECT  
     (CASE WHEN @plz <> user.plz THEN @row := @row +1 ELSE @row END) AS rownum, @plz:= user.plz, uid
                     
   FROM 
     (SELECT @row := 0) AS var,
     user 
        
   WHERE rownum=1

не работает, почему? Как выбрать данные только по псевдониму rownum?

...