@mysql_ru

Страница 97 из 142
Konstantin
27.11.2017
23:07:12
Благодарен

Только я не совсем пойму что это..

Oscar
28.11.2017
14:41:07
Всем Привет! Вопрос восновном к sql. Как правильно реализовать проверку SELECT внутри WHILE condition? т.е. выполнять цикл пока есть SELECT.



Google
Oscar
28.11.2017
16:10:10
конструкция if exists
while exists (select ...) do ... Не хочет

lost
28.11.2017
16:11:30
в плане не хочет?

Oscar
28.11.2017
16:57:38
lost
28.11.2017
17:00:24
Into убери

Oscar
28.11.2017
17:04:53
Into убери
lFld нужна, она как раз будет использоваться в теле, есть вариант с переменной?

lost
28.11.2017
17:11:58
Есть, можно сессионную сделать

Или вымолнить select еще раз

Oscar
28.11.2017
17:20:02
Есть, можно сессионную сделать
О, через @ пашет, Спасибо. Странно только почему через локальную не хочет, как мини костыль пойдет.

Есть, можно сессионную сделать
Хотя думаю опасно может быть, они же доступны вне процедуры

но варнит на set null

Google
lost
28.11.2017
17:44:31
Можешь использовать цикл с постусловием

Тогда и костылей нет считай

Allen
28.11.2017
18:05:20
I didn't understand difference between pl SQL and sql

Oscar
28.11.2017
18:38:13
Можешь использовать цикл с постусловием
не пойдет, select into не присваивает переменной null, когда нет данных, а так как старые данные остались, то цикл при проверки на null уходит в бесконечность, поэтому я обнуляю

lost
28.11.2017
18:40:37
А для чего тебе вообще такое? Может есть способ проще

Oscar
28.11.2017
18:42:48
А для чего тебе вообще такое? Может есть способ проще
это процедура агригирует и анализирует статистику из таблицы коллектора, куды все сливается и одной темной ночью включается, и раскидывает все по др табличкам только уже все оптимизировав. Таким образом у меня статистика для клиентов выходит фактический моментально

lost
28.11.2017
18:45:26
Чет понятнее не стало

)

И получается в теории твоя процедура может выполнятся бесконечно верно?

lost
28.11.2017
18:47:57
Нуу, а если коллектор будет постоянно наполняться?)

Alexey
28.11.2017
18:48:27
Курсоры же

lost
28.11.2017
18:48:43
Я бы тоже предложил курсор

По временному интервалу

Alexey
28.11.2017
18:49:04
https://dev.mysql.com/doc/refman/5.7/en/cursors.html

lost
28.11.2017
18:49:12
У тебя же наверняка есть дата в таблице общей

lost
28.11.2017
18:50:06
Нувот

Заводишь константу: дата последней обработки статистики

Дальше берешь данные по диапазону дат, и в курсоре распихиваешь

Google
lost
28.11.2017
18:51:16
Константу обновляешь

Oscar
28.11.2017
18:51:47
Нуу, а если коллектор будет постоянно наполняться?)
даже если и будет, она не считает текущий день, а только предыдущие (если вдруг пропустилась итерация), а он по логике не может заполнятся

lost
28.11.2017
18:52:36
Курсоры же
Послушай разработчика мускуля, гг)

wei
29.11.2017
03:19:42
procedure?

lost
29.11.2017
10:00:44
сделать 1 лишний джоин на таблицу не?

я пока что не обзавёлся магическим шаром для предсказаний ошибок

полностью описывай что происходит и при каких обстоятельнствах

Андрюха (Ren)
29.11.2017
10:06:07
*

lost
29.11.2017
10:07:23
ну, всё написано

гугл в помошь

Андрюха (Ren)
29.11.2017
10:13:31
гугл в помошь
О, спасибо, помогло )

Yaroslav
29.11.2017
10:14:53
в следующий раз можеш сразу использовать этот трюк, без посредников в виде чата

Yury
29.11.2017
20:21:40
Всем привет!

CREATE TABLE IF NOT EXISTS records (ID int NOT NULL AUTO_INCREMENT,FULL double NOT NULL,PROC double NOT NULL,NET double NOT NULL,PRIMARY KEY (ID));

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT int NOT NULL,RIGHT int NOT NULL,TYPE int NOT NULL,WHEN TIMESTAMP,PRIMARY KE'

Подскажите, пожалуйста

Google
Yury
29.11.2017
20:22:16
Что не так в этом запросе

Почему-то говорит, что неправильный синтаксис

Yury
29.11.2017
20:27:44
Оно же указывает на эту строчку

Yaroslav
29.11.2017
20:29:05
читай текст ошибки

смотри запрос, до этого

Yury
29.11.2017
20:29:42
Так Вы говорите ошибка в запросе или нет?

Yaroslav
29.11.2017
20:30:20
ошибка не в этом запросе

CREATE TABLE IF NOT EXISTS records (ID int NOT NULL AUTO_INCREMENT,FULL double NOT NULL,PROC double NOT NULL,NET double NOT NULL,PRIMARY KEY (ID));

Yury
29.11.2017
20:30:41
Но это вообще единственный запрос, который выполняется

Ой

Да, Вы правы

Оставил один единственный запрос в программе Вот Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT int NOT NULL,RIGHT int NOT NULL,PLOT int NOT NULL,PRIMARY KEY (ID))' at line 1 Вот запрос: CREATE TABLE IF NOT EXISTS sessions (ID int NOT NULL AUTO_INCREMENT,LEFT int NOT NULL,RIGHT int NOT NULL,PLOT int NOT NULL,PRIMARY KEY (ID));

lost
29.11.2017
20:55:05
нельзя использовать в запросах и в ddl зарезеривированные слова языка

ёкараныбабай

Yury
29.11.2017
20:55:52
А какие здесь зарезервированные?))

lost
29.11.2017
20:56:45
может быть left ?

не?

Google
Yaroslav
29.11.2017
20:56:59
А какие здесь зарезервированные?))
необходимая информация есть в гугл

Yury
29.11.2017
20:57:11
понял спасибо

да

Konstantin
30.11.2017
14:09:25
Ребят, снова нуждаюсь в вашей помощи. Все форумы облазил. Как сделать выборку по нескольким параметрам одного столбца?

К примеру есть: SELECT virtuemart_product_id FROM (SELECT DISTINCT virtuemart_custom_id, virtuemart_product_id, customfield_value FROM pkpd_virtuemart_product_customfields) t where customfield_value IN ('ss','nnnn') GROUP BY customfield_value HAVING COUNT(*)=2

Yaroslav
30.11.2017
14:11:44
вопрос не понятен

Konstantin
30.11.2017
14:11:56
Но это шило на мыло. Поиск проходит по одному элементу. Потом прочел, что "in" - аналог "or", есть ли возможность объеденить параметры выборки? Что бы было не "ss" or "nnnn", а "ss" AND "nnnn"



Yaroslav
30.11.2017
14:14:02
WHERE customfield_value = 'ss' AND customfield_value = 'nnnn'

в чем проблема то?

Konstantin
30.11.2017
14:14:39
Вооот. В том, что результат такой выборки будет пустой

Страница 97 из 142