С Новым годом! Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 09.06.2022
Сообщений: 31

Перестал работать запрос

18.10.2023, 13:31. Показов 949. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Достался по наследству такой sql запрос:
SQL
1
2
3
4
5
6
7
WITH T1 AS ( SELECT `chat_id`, `count_new_mess` FROM `chat_party` WHERE `user_id` = 141 AND `hidden` = 0), 
T2 AS ( SELECT `chat_id`, MAX(`message_id`) AS last_message_id FROM `chat_messages` WHERE `chat_id` IN (SELECT `chat_id` FROM T1) GROUP BY `chat_id` )
SELECT T1.`chat_id`, T1.`count_new_mess`, C.`name`, C.`privat`, T2.`last_message_id` AS `last_message_id`, CM.`message`, C.`author_user_id`
FROM T1 INNER JOIN `chat` C ON T1.`chat_id` = C.`chat_id`
LEFT OUTER JOIN T2 ON T1.`chat_id` = T2.`chat_id`
LEFT OUTER JOIN `chat_messages` CM ON T2.`last_message_id` = CM.`message_id` 
ORDER BY T2.`last_message_id` DESC
При запуске выдает ошибку:
Code
1
Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 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 'T1 as ( select `chat_id`, `count_new_mess` from `chat_party` where `user_id` = ?' at line 1 in
Пытаюсь запустить сам запрос в пыхадмине, но он тоже ругается: "Неизвестный оператор. (near "WITH" at position 0)"

Связь с автором этого запроса пропала. Я чет не могу разобрать что здесь происходит. Видать запрос косячный, но я не могу понять где косяк. Если кто заметит в чем ошибка, буду весьма благодарен. Пользователи чата говорят что все работало, но в один момент перестало.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2023, 13:31
Ответы с готовыми решениями:

Перестал работать запрос при переходе с mySQL 5.5 на mySQL 8.0
В логах запросы выглядят одинаково, но на mySQL 8 происходит удаление записи, а insert не выполняется, хотя в логах он есть, в чем может...

Перестал работать mysql сервер что ли
Здравствуйте. Имеется Centos 6. Уже скок времени не лезу в работу мускула, а утром он упал. Тоисть как бы работает, так как через...

Перестал работать запрос
После аварийного выключения компьютера начала барахлить база данных. При построении запроса без инструкции WHERE запрос работает нормально....

10
Эксперт .NET
 Аватар для Usaga
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,022
18.10.2023, 13:35
novikov_99, ну, если всё работало раньше, то запрос рабочий. Сам же он переписаться не мог, так ведь? Может на более старой версии СУБД пытаешься выполнить, которая не подерживает CTE?
0
1 / 1 / 0
Регистрация: 09.06.2022
Сообщений: 31
18.10.2023, 13:38  [ТС]
Usaga, вообще ничего не менялось. Ни версия сервера, пхп и т.п. После сбоя сервера (перезагрузка) перестал работать. Возможно сам пыхадмин не поддерживает with, но почему mysql ругается на запрос не могу понять.

Ну а в синтаксисе запроса все норм?
0
Эксперт .NET
 Аватар для Usaga
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,022
18.10.2023, 15:50
novikov_99, да запрос выглядит корректным. По крайней мере не бросается в глаза ничего.

Цитата Сообщение от novikov_99 Посмотреть сообщение
Возможно сам пыхадмин не поддерживает with
"пыхадмин" ничего не поддерживает. Это не СУБД. Это админка на PHP, которая запросы в СУБД отправляет и тебе показывает результат.
1
1 / 1 / 0
Регистрация: 09.06.2022
Сообщений: 31
18.10.2023, 16:18  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
"пыхадмин" ничего не поддерживает. Это не СУБД. Это админка на PHP, которая запросы в СУБД отправляет и тебе показывает результат.
во всяком случае ошибки они выбрасывают разные. пыхадмин:Неизвестный оператор. (near "WITH" at position 0)
а в запросе:Syntax error or access violation: 1064 You have an error in your SQL syntax...

Ладно, если предположить что СУБД не принимает запрос, то как это проверить? В смысле какая версия или настройки должны быть чтобы она приняла запрос с with?
0
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
18.10.2023, 18:02
novikov_99, Скиньте сюда вывод CREATE таблиц (в вашем случае можно и без данных) chat_party, chat_messages, chat (посмотрите ещё какие могут быть, если я не все заметил).
0
1 / 1 / 0
Регистрация: 09.06.2022
Сообщений: 31
18.10.2023, 18:30  [ТС]
Gluck99,

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
CREATE TABLE `chat` (
  `chat_id` INT(11) NOT NULL,
  `name` VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL,
  `author_user_id` INT(11) NOT NULL,
  `type_user` INT(11) NOT NULL DEFAULT '0',
  `id_m_p` INT(11) DEFAULT '0',
  `privat` VARCHAR(50) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
 
CREATE TABLE `chat_messages` (
  `message_id` INT(11) NOT NULL,
  `chat_id` INT(11) NOT NULL,
  `user_id` INT(11) NOT NULL,
  `message` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `date_create` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `type_user` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
 
CREATE TABLE `chat_party` (
  `id` INT(11) NOT NULL,
  `chat_id` INT(11) NOT NULL,
  `user_id` INT(11) NOT NULL,
  `count_new_mess` INT(11) NOT NULL DEFAULT '0',
  `type_user` INT(11) NOT NULL DEFAULT '0',
  `unik` VARCHAR(128) CHARACTER SET utf8 NOT NULL,
  `hidden` tinyint(1) NOT NULL DEFAULT '0',
  `role` VARCHAR(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
 
ALTER TABLE `chat`
  ADD PRIMARY KEY (`chat_id`);
 
 
ALTER TABLE `chat_messages`
  ADD PRIMARY KEY (`message_id`);
 
 
ALTER TABLE `chat_party`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unik` (`unik`),
  ADD KEY `chat_id` (`chat_id`);
собственно все
0
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
18.10.2023, 18:52
Цитата Сообщение от novikov_99 Посмотреть сообщение
MariaDB server version for the right syntax
в MariaDB не поддерживается запросы WITH (CTE), можете другой принцип попробовать...
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
CREATE TABLE `chat` (
  `chat_id` INT(11) NOT NULL,
  `name` VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL,
  `author_user_id` INT(11) NOT NULL,
  `type_user` INT(11) NOT NULL DEFAULT '0',
  `id_m_p` INT(11) DEFAULT '0',
  `privat` VARCHAR(50) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`chat_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
CREATE TABLE `chat_messages` (
  `message_id` INT(11) NOT NULL,
  `chat_id` INT(11) NOT NULL,
  `user_id` INT(11) NOT NULL,
  `message` TEXT COLLATE utf8mb4_unicode_ci NOT NULL,
  `date_create` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `type_user` TINYINT(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`message_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
CREATE TABLE `chat_party` (
  `id` INT(11) NOT NULL,
  `chat_id` INT(11) NOT NULL,
  `user_id` INT(11) NOT NULL,
  `count_new_mess` INT(11) NOT NULL DEFAULT '0',
  `type_user` INT(11) NOT NULL DEFAULT '0',
  `unik` VARCHAR(128) CHARACTER SET utf8 NOT NULL,
  `hidden` TINYINT(1) NOT NULL DEFAULT '0',
  `role` VARCHAR(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `unik` (`unik`),
  KEY `chat_id` (`chat_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
0
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
18.10.2023, 20:43
Лучший ответ Сообщение было отмечено novikov_99 как решение

Решение

Цитата Сообщение от novikov_99 Посмотреть сообщение
собственно все
На MySQL 8 всё отрабатывает корректно. Может у вас всё-таки после сбоя сменилась каким-то образом версия сервера? Я имею в виду, что если база на хостинге, а не выделенный сервер, то теоретически такое может быть, хоть и маловероятно. Вместо восьмёрки воткнули 5.7, например.
Скрипт на PHP изменения в текст запроса не вносит? Нет там никакой динамической генерации в зависимости от чего-нибудь?

Выполните запрос
MySQL
1
SELECT @@version;
в PHPMyAdmin, и всё с версией станет ясно.
1
Эксперт .NET
 Аватар для Usaga
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,022
19.10.2023, 05:37
Цитата Сообщение от novikov_99 Посмотреть сообщение
that corresponds to your MariaDB server version
Цитата Сообщение от Gluck99 Посмотреть сообщение
На MySQL 8 всё отрабатывает корректно.
Ну, т.е. изначальное предположение о том, что изменилась версия СУБД подтверждается) Волшебства не бывает, чтобы оно долгое время работало, а потом само сломалось, хотя, якобы, никто ничего не трогал и не менял.
1
1 / 1 / 0
Регистрация: 09.06.2022
Сообщений: 31
19.10.2023, 09:03  [ТС]
Спасибо товарищи!
Gluck99, таки да, версия MariaDB 10.1.х но нужна 10.2.х
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2023, 09:03
Помогаю со студенческими работами здесь

Перестал вдруг работать SQL запрос 2003
Добрый день. Возникла проблема буквально пару дней назад. Строка создана из запроса давно strSQL = "SELECT tbAktMs.DataMs,...

Перестал работать импорт
Всем добрый день. Давненько я не был на форуме. Имеется база (эта для образца) для загрузки актов из Excel, все было нормально, пока на...

IBExpert перестал работать
Здравствуйте. После смены языка интерфейса ОС с английского на украинский перестал работать IBExpert. Работа программы останавливается...

Rst.Edit перестал работать
Уважаемые форумчане! Подскажите, в какую сторону копнуть - работало-работало и перестало... Простой код, а rst.Edit не отрабатывает....

Перестал работать метод AddNew
Здравствуйте, подскажите пож-ста. Написал метод AddNew для добавления записей из экселя в акцесс. Еще неделю назад все работало,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru