# 1235 - Эта версия MariaDB еще не поддерживает «LIMIT & IN / ALL / ANY / SOME subquery» в MySQL - PullRequest
0 голосов
/ 13 мая 2019

Это мой запрос MySQL:

select t.*
from hr_pangkat t
where t.oID >= any (select t2.oID
                   from hr_pangkat t2
                   where t2.pegawaiID = t.pegawaiID
                   order by t2.oID asc
                   offset 1 limit 1
                  );

, и он показывает ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'offset 1 limit 1
                  ) LIMIT 0, 25' at line 7

, и если я удаляю смещение, он по-прежнему показывает ошибку, подобную этой:

#1235 - This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Как это исправить?

Я использую MySQL версии 5.6

1 Ответ

2 голосов
/ 13 мая 2019

any не требуется:

select t.*
from hr_pangkat t
where t.oID >= (select t2.oID
                from hr_pangkat t2
                where t2.pegawaiID = t.pegawaiID
                order by t2.oID asc
                offset 1 limit 1
               );

Однако, это не работает, если есть только одна строка.Итак, вы можете добавить:

select t.*
from hr_pangkat t
where t.oID >= coalesce( (select t2.oID
                          from hr_pangkat t2
                          where t2.pegawaiID = t.pegawaiID
                          order by t2.oID asc
                          offset 1 limit 1
                         ), t.oID
                       );
...