
Alexey
03.10.2017
09:25:51
оптимизатор MySQL с картинками: http://www.unofficialmysqlguide.com/

Fike
03.10.2017
11:43:05
разархивировать

Rushan
04.10.2017
08:54:38
Всем добрый день!
Подскажите плз, с чем может быть связана такая ошибка: у меня дамп базы ставится, у тестера нет, выдаёт ошибку на линии №.....
Там вообще комментарий
MYSQL одинаковой версии
Прям тупизм какой то

Google

lost
04.10.2017
08:59:54
ошибку в студию

Rushan
04.10.2017
09:27:09
просто "error at line 3333"
и всё

Fike
04.10.2017
12:58:53
ошибка не в комментарии, ошибка перед комментарием

Yaroslav
04.10.2017
14:17:44
всем привет, вопрос, в процедуре, если мы передали переменную, можем ли ее юзать, для название таблицы?
ибо у меня не подставляет значение в from

Alexey
04.10.2017
14:24:06
просто так нельзя. это называется dynamic sql. можно через prepared statements: https://stackoverflow.com/questions/190776/how-to-have-dynamic-sql-in-mysql-stored-procedure

Yaroslav
04.10.2017
14:26:07
спасибо, знаю, что это, попробую
а можно через SHOW TABLES сделать?

lost
04.10.2017
16:17:58
ну сделаешь ты show tables
а передашь ты результат этого show tables куда?
в пыху?

Yaroslav
04.10.2017
16:18:48
нельзя никак поместить в переменную, или подзапрос?

Google

lost
04.10.2017
16:19:02
нет
проще динамику использовать, я думаю

Yaroslav
04.10.2017
16:19:50
ок, спасибо

Alexey
04.10.2017
16:22:13

Yaroslav
04.10.2017
16:38:49
Жаль(
Спасибо, за ответы парни)

lost
04.10.2017
16:39:44
да напиши динамику

Yaroslav
04.10.2017
16:39:50
Уже

lost
04.10.2017
16:39:53
не ссы, Славик, сто раз так делал)

Yaroslav
04.10.2017
16:40:08
Просто думал, над вариантами

Konstantin
04.10.2017
17:16:59
Ребят привет, нужна помощь
Есть таблица (структура в принципе не важна), в неё нужно добавить новую колонку, и затем отдельной операцией туда нужно через джоин этой таблицы и еще одной записать значение из приджойненой таблицы
Я не врубаюсь каким образом это провернуть

Egor
04.10.2017
17:20:55

lost
04.10.2017
17:21:20
Продакшн база или песочница?

Yaroslav
04.10.2017
17:21:41
Зачем джоин делать?

lost
04.10.2017
17:22:24
Ну а как ты сопоставишь данные в 2х таблицах
Тут до джоина ещё
Как до китая в присядку

Fike
04.10.2017
17:27:08
разобью интригу
update table set x = (select ...)

Yaroslav
04.10.2017
17:28:19
Одни коты(

Google

lost
04.10.2017
17:34:46

Fike
04.10.2017
17:35:05
where он там, в многоточии

lost
04.10.2017
17:36:28
Джоин будет быстрее
Если там конечно не таблица из 10 записей

Konstantin
04.10.2017
17:45:33
update table set x = (select ...)
update sometable set toUpdate = (select toUpdate from yetAnotherTable where sometable.joinColumn = yetAnotherTable.joinColumn);
Круто, но внутренний селект возвращает много значений

Fike
04.10.2017
17:46:50
ну джойн тебе здесь никак не поможет
тебе самому как-то придется выбрать, какое из них правильное

Антон
04.10.2017
20:17:08
REPLACE INTO school_weeks (week, day) SELECT CEIL( DATEDIFF( NOW() , '1970-01-04' ) / 7 ) AS week, seq AS day FROM seq_0_to_6
норм запрос?

lost
04.10.2017
20:19:26
Первое правило клуба
Не используй реплейс

Антон
04.10.2017
20:19:49

lost
04.10.2017
20:21:30
Побочные эффекты
Почитай

Антон
04.10.2017
20:22:51
мне надо создать если не существует

lost
04.10.2017
20:40:42
Для этого лучше использовать on duplicate key update

Magic
04.10.2017
22:47:06
откуда тогда реплейс берут

lost
04.10.2017
22:51:12
Из документации, откуда же ещё

Fike
04.10.2017
23:07:13

Google

Magic
04.10.2017
23:09:28
выдавало всегда on duplicate

Fike
04.10.2017
23:31:32

Yaroslav
05.10.2017
07:45:35
Доброе утро, есть вопрос.
Есть большой запрос, который собирает куча инфы с разных таблиц и инсертит их в две других таблицы.
Хотел сделать процедуру в которой циклом инсертяться не все строки, а пачками.
Нужно сделать аналогично, тоже самое для другой таблицы. Для этого хотел изменить процедуру, чтобы переменной подхватывалась имя таблицы и выполнялась. Но переменные нельзя юзать для названий таблиц.
Было предложено решение динамического sql, я его написал. Но потом потребовалось сделать запрос большим и я а##ел. Цикл + запрос большой = не сильно подходит динамический запрос. Вопрос заключаеться в том, что нужно помощь в возможных вариантах решения
тупо на php гнать пачками запросы в цикле? есть ли другие варианты?
Есть мнение, что у меня ебанутый алгоритм, но все же. Может, у кого есть мысли?

lost
05.10.2017
08:02:17
А что мешает сделать отдельную процедуру без динамического sql?

Yaroslav
05.10.2017
08:03:19
нужно 2 раза одну операцию сделать для двух таблиц
там большой запрос, дублировать не хотел
а это будет две процедуры
логика и так ебанутая, потом никто не разбереться
кроме меня

lost
05.10.2017
08:07:58
Ну можно и в одну процедуру объединить, запилить на вход какой-нибудь type, и при вызове будет выполняться нужный кусок в зависимости от него
Единственное да, дублирование кода

Yaroslav
05.10.2017
08:11:46
и если добавить сюда, что вставлять нужно в две таблицы, а не в одну. получаем 4 запроса в процедуре
кто-то точно ебанеться, когда дебажить будет
там еще много помимо этого шага
в общем, думаю сделать на php логику, через один запрос в цикле.

Антон
05.10.2017
09:48:50

Archer
05.10.2017
10:51:42
Ребят, я первый раз такое делаю, поэтому детский вопрос: есть лог чата, надо его писать в базу, если просто инсертить тест чата в какое-то поле, то можно же '); DROP DATABASE db; сделать.
Как правильно и просто подобного избежать?

Google

Danil
05.10.2017
10:52:34
читай про sql by]trwbb
*инъекции

Archer
05.10.2017
10:53:21
т.е. одного простого решения нет?

Danil
05.10.2017
10:54:33
решение в инструменте, которым ты инсертишь

Danil
05.10.2017
10:54:34

Archer
05.10.2017
10:56:06

Danil
05.10.2017
10:59:03
наверное больший отклик будет тут : @ru_python @propython @ru_python_beginners @rudepython

Lucky
05.10.2017
11:04:00

Archer
05.10.2017
11:04:35

Fike
05.10.2017
12:21:48

lost
05.10.2017
12:28:00
подумаешь, оверхед в операции и побочные эффекты, плюс фрагментация данных и индексов
может от так и задумывал