
Salavat
28.03.2017
08:49:18
В выборке cat_id IN (12,13,15) - с N=3 попадет и 9ка
Хотя у нее набор (13,15,17)
А мы ищем покрытие 12,13,15 в первую очередь и потом только по двум значениям

Fike
28.03.2017
08:51:24
а как насчет нет?

Google

Fike
28.03.2017
08:51:44
mysql> create table t2 (art_id int, cat_id int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t2 (art_id, cat_id) values (1, 12), (1, 13), (1, 15), (2, 12), (2, 15), (3, 12), (4, 13), (5, 15), (6, 15), (7, 12), (7, 13), (7, 15), (8, 12), (8, 13), (9, 13), (9, 15), (9, 17);
Query OK, 17 rows affected (0.00 sec)
Records: 17 Duplicates: 0 Warnings: 0
mysql> select art_id, count(cat_id) as weight from t2 where cat_id in (12, 13, 15) group by art_id order by weight desc;
+--------+--------+
| art_id | weight |
+--------+--------+
| 1 | 3 |
| 7 | 3 |
| 2 | 2 |
| 8 | 2 |
| 9 | 2 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
+--------+--------+
9 rows in set (0.00 sec)

Salavat
28.03.2017
08:53:52
Так. Прошу прощения. Смотрю почему у меня оно не так работает
@etkee еще раз прошу прощения, действительно работает.

Pavel
28.03.2017
14:31:24
Кто то сталкивался с data dictionary corruption?

Vladimir
30.03.2017
06:30:42
Привет, mysqlманы.
Столкнулся тут с такой задачей: id name age.
Данные по age повторяются.
Задача - вывести пары.
Ну грубо: Иван 20, Сергей 20.
Я задачу не понимаю, саму логику. Хотя уже и решение пояснили. Можете кто рассказать и зачем главное? Как часто встречается?

Fike
30.03.2017
06:31:19
я так вообще ничего не понял

Vladimir
30.03.2017
06:31:31
insert into people values (1,'Вася',19);
insert into people values (2,'Петя',20);
insert into people values (3,'Коля',20);
insert into people values (4,'Иван',23);
insert into people values (5,'Анна',18);
insert into people values (6,'Олег',31);
insert into people values (7,'Женя',24);
insert into people values (8,'Алла',20);
insert into people values (9,'Леша',24);
insert into people values (10,'Толя',24);
select * from people;
select p1.lname, p1.age from people p1 inner join people p2 on p1.age=p2.age
GROUP BY p1.lname, p1.age HAVING count(p1.age)>1 order by p1.age
Вот решение
Сорри, чот подзабыл как с телефона код вставлять
https://pastebin.com/2MxMLKym
Общем не уверен что решение правильное, но мне хотелось бы понять логику задачи. Что такое "выводить пары"

Dmitry
30.03.2017
06:57:07
Решение непонятное

Vladimir
30.03.2017
07:07:56
Да и без решения мне логика не ясна. Вот у меня в таблице пара с 20 и 3 человека с 24

Google

Vladimir
30.03.2017
07:09:20
По логике с 20 - 2 пары, т.е. 4 записи, с 24 - 6 записей.
Или как?
Я не понимаю этой задачи хоть убей

Dmitriy
31.03.2017
17:40:30
Ребят, приветствую. Есть кто живой?
Внимание, вопрос:
Есть табличка. В ней поле беззнаковый INT с AUTO_INCREMENT - это номер.
Задача: Вставлять в это поле кастомные номера, без оффсета данного поля.
Например: есть норме 222,223,224. Хочется вставить запись с явноуказанным номером 777, но, следующие втсавляемые записи без явного указания номера должны продолжить текующую последовательность, т.е. 225, 226. Потом, как дойдет до 776, следующий отдать уже 778.
Рельно ли сделать это штатными средствами?

Fike
31.03.2017
17:52:24
зачем?

Dmitriy
31.03.2017
17:53:38
прикручивается платная доп. услуга "красивый номер" например, бесплатно - получите номер по порядку.

Fike
31.03.2017
17:54:15
адище

Alex
31.03.2017
17:55:13
Наркоманы

Fike
31.03.2017
17:55:17
проще всего хранить отдельной записью значение курсора, скорее всего, можно с сиквенсами поиграться, вероятнее всего, автоинкремент не тупой и при ресете увидит лишние значения
но я даже представить не могу тот донный уровень населения, из чьего ила будут монетизировать ваш проект

Dmitriy
31.03.2017
17:55:49
Ищо какой. Пока задумывается архитектура всего этого.

Fike
31.03.2017
17:55:53
ааа
не взлетит

Dmitriy
31.03.2017
17:56:48
Мне дали задание разработать. Взлетит или нет, дело заказчика.
Т.к. best practice не гуглится, то решил посоветоваться с коллегами)

Fike
31.03.2017
17:57:38
передавайте ему мое уважение к его решению слить кучу бабла

Alex
31.03.2017
17:58:46
Номерные емкости, распределение, не не слышали

Dmitriy
31.03.2017
17:59:14

Dmitry
31.03.2017
19:20:48

Google

Dmitry
31.03.2017
19:20:58
Длинну инта посмотрите
Заведите отдельное поле
Делайте там что хотите
Лучше на уровне приложения
Это стол, за ним едят, не надо туда пытаться сесть
Архитекторы епт

Alexander
31.03.2017
20:43:17
Пропущенный ID можно выбирать так:
SELECT t1.id + 1 AS empy_id
FROM client AS t1
LEFT JOIN client AS t2 ON t2.id = t1.id +1
WHERE t2.id IS NULL LIMIT 1
А далее вставляете новый ID в таблицу без использования AUTO_INCREMENT
Статья на хабре, где приводится подобное решение: https://habrahabr.ru/post/228099/

Dmitriy
31.03.2017
22:23:15

Alexander
31.03.2017
22:45:16

Dmitry
05.04.2017
07:03:14
Personal blog of Yzmir Ramirez
Percona Live Webinar Thursday, April 6, 2017: Best Practices Migrating to Open Source Databases
https://www.percona.com/blog/wp-content/uploads/2017/04/Open-Source-Databases-150x84.png Please join Percona’s CEO and Founder, Peter Zaitsev on April 6th, 2017 at 8:00 am PDT / 11:00 am EDT (UTC-7) as he presents Best Practices Migrating to Open Source Databases. Register Now This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see […]

Андрей
05.04.2017
08:12:05
Всем привет.
Посоветуйте пожалуйста ресурс, где можно научиться использовать базы данных.

:)
05.04.2017
12:24:59
http://www.sql-ex.ru/?Lang=0

Artur
06.04.2017
23:25:51
люди. Что лучше ? having или подзапрос?

Max
06.04.2017
23:32:53
подзапрос, having c group by идет, соответственно делается сортировка, подзапрос без сортировки
having без group by это просто where, тогда одинаково будет

Artur
06.04.2017
23:33:30
ну у меня и груп бай тоже есть,

Max
06.04.2017
23:34:41
тогда без разницы

Artur
06.04.2017
23:34:52
понял. спасибо

Google

Yuriy
07.04.2017
18:40:11
доброй ночи
подскажите пожалуйста почему запрос выполняется не так как я предполагаю
SELECT
*
FROM
work w0_
INNER JOIN subject s1_ ON w0_.subject_id = s1_.id
INNER JOIN type_work t3_ ON w0_.type_work_id = t3_.id
INNER JOIN estimated e2_ ON (
e2_.work_id = w0_.work_id
AND e2_.avtor_id = w0_.avtor_id
)
WHERE
w0_.status = 4
AND w0_.avtor_id = 2
мне нужно выбрать значения из "work" и одно поле из табл "estimated" результат всегда должен быть одна запись, а я получаю несколько

Dmitriy
07.04.2017
18:44:32
Структуру бы посмотреть
А лучше .sql с маленьким дампом

Yuriy
07.04.2017
18:51:35
но кажется проблемы нет, и все у меня правильно выводится только я неправильный метод доктрине подкинул

Dmitry
08.04.2017
09:57:37
Personal blog of Yzmir Ramirez
Evaluation of PMP Profiling Tools
https://www.percona.com/blog/wp-content/uploads/2017/03/PMP-Profiling-Tools-150x100.png In this blog post, we’ll look at some of the available PMP profiling tools. While debugging or analyzing issues with Percona Server for MySQL, we often need a quick understanding of what’s happening on the server. Percona experts frequently use the pt-pmp tool from Percona Toolkit (inspired by http://poormansprofiler.org). The [crayon-58e7df397baed658161575-i/] tool collects application stack traces GDB and then […]

Anton
08.04.2017
21:49:20
Привет. Есть поле user_ids тип json пример: [12,34] как сделать выборку по конкретному id?

Fike
08.04.2017
22:34:57
Привести к нормальной форме?

Anton
08.04.2017
22:36:01
лень и некритично по перфомансу
*уже нашел JSON_CONTAINS(`user_ids`, ?)

Fike
08.04.2017
22:36:58
Боже, лень ему
По перфорсансу нормальная форма хуже будет

Anton
08.04.2017
22:37:55
тем более.

Egor
08.04.2017
22:38:18

Anton
08.04.2017
22:38:26
я думал, что нормальная форма индексируется и там перфоманс лучше будет

Fike
08.04.2017
23:08:22
Вот это уровень профессионализма, а
Чет там проиндексируется и быстрее

Subb98
09.04.2017
09:22:56
Добрый день. Можно ли упростить такой запрос?
SELECT * FROM `some_table` WHERE `timestamp` <= UNIX_TIMESTAMP() AND `timestamp` != 0;

Dmitriy
09.04.2017
09:35:07
Внутри что-то абсурдное
И что unix_timestamp без аргументов в запрос подставит?

Subb98
09.04.2017
09:36:14
now()

Google

Dmitriy
09.04.2017
09:36:32
А ноль там откуда?
Дефолтное значение?

Subb98
09.04.2017
09:36:50
Странные вопросы. У меня там будут нули, мне нужно их исключить.
Из выборки.

Dmitriy
09.04.2017
09:37:09
Тогда > 0
А запрос и так упращен

Subb98
09.04.2017
09:37:42
ОК, я просто думал, возможно, можно обойтись без оператора and
Спасибо

Dmitriy
09.04.2017
09:39:12
Можно between 1 and unix_timestamp
А если сравнивать до текущего момента, то вообще можно просто > 0