
Shmaltorhbooks
02.07.2018
14:23:04
В чем разница между "785 - ОК" и "785 - Пшёл вон"?
И то и то по два раза
Или если 785 два раза - норм, а третий и дальше - не очень?

Andrew
02.07.2018
14:28:05
Есть таблица t1 и полями id, K.
Нужно вывести все записи, исключая те, в которых одинаковое K встречается более N раз.
Пример при N = 2:
id = 1, K = 464 - OK
id = 2, K = 785 - OK
id = 3, K = 785 - OK
id = 4, K = 785 - Пшёл вон
id = 5, K = 785 - Пшёл вон
id = 6, K = 464 - OK
id = 7, K = 23 - OK
Как отфильтровать записи с меткой 'Пшёл вон'?
А в чем проблема, запрос составить или на php отфильтровать?

Google

Leonid
02.07.2018
14:29:27

Shmaltorhbooks
02.07.2018
14:30:30
Having count<2
Не?

Leonid
02.07.2018
14:32:54

Shmaltorhbooks
02.07.2018
14:34:29
select id, count(K) as c
...
...
having c < 2
список айдишек будет
почему с 2 по 5 выкинет?
а, не

Андрей
02.07.2018
14:38:45
group by K и подзапрос с лимитом на каждую группу - слишком медленно?

Dmitry
02.07.2018
14:39:37
взять постгрес или последний мускуль

Shmaltorhbooks
02.07.2018
14:40:01
короч, тебе нужно показать только первые n записей, из каждой "категории" K?

Dmitry
02.07.2018
14:40:07
и смотреть оконные функции

Google

Tony
02.07.2018
14:47:47
Всем привет. Наверняка кто-то сталкивался с известной проблемой, когда PDO интерпретирует numeric значения из БД как строку. Подскажите, кто как справлялся с этим?

Artem
02.07.2018
14:48:59

Tex
02.07.2018
14:49:42
а PDO возвращает строки, да.

Tony
02.07.2018
14:52:07
PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool
Такой пункт в документации разве не об этом?

Artem
02.07.2018
14:56:57

Tony
02.07.2018
14:59:47

Artem
02.07.2018
15:00:20

Leonid
02.07.2018
15:01:26

Tony
02.07.2018
15:02:29

Vitaly
02.07.2018
15:06:33

Leonid
02.07.2018
15:07:50

Alexandr
02.07.2018
15:26:12
Всем привет,не подскажете как можно не заставлять заполнять форму и инпуты если пользователь не хочет. К примеру он не хочет менять пароль,но хочет сменить имэйл,как сделать так чтобы не случились конфликты в базе данных?

Andrew
02.07.2018
15:37:08

Alexandr
02.07.2018
15:38:59
хехе
Есть ли какая то функция которая может усыпить функцию если от этой функции допустим зависит эммм база данных. К примеру когда пользователь зарегался,первым делом он получает пустой профиль,ошибок не получает о том что профиль не заполнен,как сделать так чтобы одна функция отвечала за внесение данных пользователя с профиля,и потом когда функция заметила что были какие то изменения запускается секундомер скажем через 3 секунды профиль обновляется и вуаля у нас есть все данные профиля с базы данных без ошибок о том что не найдена переменная.

F01134H
02.07.2018
15:48:20
sleep()?

Alexandr
02.07.2018
15:49:50
sleep()?
sleep вырубает весь скрипт где она находится неважна где сама функция сидит. Я только потом узнал

F01134H
02.07.2018
15:51:02
ты какой то бред просишь, юзай ajax ?♂️

Google

Artem
02.07.2018
15:59:09
Предметная область - тестирование.
Пользователь заходит на сайт, видит список тестов, выбирает тест, видит список вопросов, отвечает.
Выбрал агрегат в составе теста (корень), который содержит набор сущностей-вопросов, которые содержат набор сущностей-ответов.
При ответе на вопрос нужно понять на какой именно вопрос пришёл ответ, для чего можно у ответа создать метод, возвращающий вопрос и найти в тесте нужный вопрос по его id.
Вот тут непонятно - с одной стороны получается, что поле со ссылкой на родителя в вопросе становится общедоступным (хоть и через геттер), а с другой ничего особенного я с ним не делаю, только получаю id, чтобы понять на какой вопрос отвечать.
Или можно как-то по-другому поступить в этой ситуации? Может я совсем чушь делаю?
https://gist.github.com/Guuzen/6dc1beee4f724971269148b90abf07b4#file-testing-php-L40

F01134H
02.07.2018
16:03:31
что за ссылка на родителя?

Artem
02.07.2018
16:04:16

F01134H
02.07.2018
16:05:25
а почему у тебя вопросы и ответы связаны напрямую?
у тебя должен быть какой то отдельный класс, который вопросы и ответы сопоставляет, не?

Artem
02.07.2018
16:07:37

F01134H
02.07.2018
16:13:38
Ну и связывай их через отдельную сущность


Vitaly
02.07.2018
16:14:09
Предметная область - тестирование.
Пользователь заходит на сайт, видит список тестов, выбирает тест, видит список вопросов, отвечает.
Выбрал агрегат в составе теста (корень), который содержит набор сущностей-вопросов, которые содержат набор сущностей-ответов.
При ответе на вопрос нужно понять на какой именно вопрос пришёл ответ, для чего можно у ответа создать метод, возвращающий вопрос и найти в тесте нужный вопрос по его id.
Вот тут непонятно - с одной стороны получается, что поле со ссылкой на родителя в вопросе становится общедоступным (хоть и через геттер), а с другой ничего особенного я с ним не делаю, только получаю id, чтобы понять на какой вопрос отвечать.
Или можно как-то по-другому поступить в этой ситуации? Может я совсем чушь делаю?
https://gist.github.com/Guuzen/6dc1beee4f724971269148b90abf07b4#file-testing-php-L40
Не понятно почему при ответе на вопрос, нужно понимать, на какой именно вопрос пришел ответ?
Ты же отвечаешь на него, соответственно каким-то образом достаешь эту сущность с идентификатором из бд.


Nurik
02.07.2018
16:20:13
компаратор нужен отдельный и передавать в него вопрос, правильные ответы и ответы от юзера
на каждый тип вопроса свой компаратор

Artem
02.07.2018
16:26:30


Sergey
02.07.2018
16:34:01
Предметная область - тестирование.
Пользователь заходит на сайт, видит список тестов, выбирает тест, видит список вопросов, отвечает.
Выбрал агрегат в составе теста (корень), который содержит набор сущностей-вопросов, которые содержат набор сущностей-ответов.
При ответе на вопрос нужно понять на какой именно вопрос пришёл ответ, для чего можно у ответа создать метод, возвращающий вопрос и найти в тесте нужный вопрос по его id.
Вот тут непонятно - с одной стороны получается, что поле со ссылкой на родителя в вопросе становится общедоступным (хоть и через геттер), а с другой ничего особенного я с ним не делаю, только получаю id, чтобы понять на какой вопрос отвечать.
Или можно как-то по-другому поступить в этой ситуации? Может я совсем чушь делаю?
https://gist.github.com/Guuzen/6dc1beee4f724971269148b90abf07b4#file-testing-php-L40
https://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DEV-B331
с этим разбирался?


Андрей
02.07.2018
16:34:11
Сойдёт, если можешь подробнее рассказать, как оно делается.
Подскажу только как сделать двумя запросами.
$grouppedRows = $pdo->query('SELECT k FROM table_name GROUP BY k')->fetchAll(PDO::FetchAssoc);
$sql = array_reduce(
$grouppedRows,
function($sql, $row) {
return "($sql) UNION (SELECT * FROM table_name WHERE k = {$row['k']} LIMIT 2)"
},
'SELECT * FROM table_name limit 0'
);
$result = $pdo->query($sql)->fetchAll(PDO::FetchAssoc);
Наверняка можно сделать в один. Только я не знаю как обойтись без итеративности и склейки во временную таблицу

Sergey
02.07.2018
16:34:50

Artem
02.07.2018
16:35:43
с этим разбирался?
вот сейчас пытаюсь. Спасибо за ссылку, может поможет (хотя я не уверен, что мне что-то может помочь :D )

Leonid
02.07.2018
16:44:27

Bohdan
02.07.2018
16:59:42

Мио
02.07.2018
17:10:31

Google

Maksim
02.07.2018
17:11:30

Мио
02.07.2018
17:12:26
это приемлемое время. темболее на реальном серваке раза в 3 быстрее будет чем на ноуте моем

Leonid
02.07.2018
17:52:16
а что за задача? накидай на sqlfiddle
Эта задача:
Есть таблица t1 и полями id, K.
Нужно вывести все записи, исключая те, в которых одинаковое K встречается более N раз, то есть вывести первые N записей с одинаковыми K.
Пример при N = 2:
id = 1, K = 464 - OK
id = 2, K = 785 - OK
id = 3, K = 785 - OK
id = 4, K = 785 - Пшёл вон
id = 5, K = 785 - Пшёл вон
id = 6, K = 464 - OK
id = 7, K = 23 - OK
Как отфильтровать записи с меткой 'Пшёл вон'?

Dmitry
02.07.2018
18:03:57
Эта задача:
Есть таблица t1 и полями id, K.
Нужно вывести все записи, исключая те, в которых одинаковое K встречается более N раз, то есть вывести первые N записей с одинаковыми K.
Пример при N = 2:
id = 1, K = 464 - OK
id = 2, K = 785 - OK
id = 3, K = 785 - OK
id = 4, K = 785 - Пшёл вон
id = 5, K = 785 - Пшёл вон
id = 6, K = 464 - OK
id = 7, K = 23 - OK
Как отфильтровать записи с меткой 'Пшёл вон'?
самое простое наверное через подзапрос которые выберит лимитированное кол-во записей

Dmitry
02.07.2018
18:04:38
самое простое - это окна

Dmitry
02.07.2018
18:05:27

Admin
ERROR: S client not available

Shmaltorhbooks
02.07.2018
18:05:47
Хз, как в новых версиях мускуля, но последний раз когда у меня вставала задача типа "выбрать n первых постов для m юзеров" - приходилось либо разбивать на запросы, либо вводить переменные, которые считали количество записей и потом отсекать все значения больше n

Mayor
02.07.2018
18:14:31
Эта задача:
Есть таблица t1 и полями id, K.
Нужно вывести все записи, исключая те, в которых одинаковое K встречается более N раз, то есть вывести первые N записей с одинаковыми K.
Пример при N = 2:
id = 1, K = 464 - OK
id = 2, K = 785 - OK
id = 3, K = 785 - OK
id = 4, K = 785 - Пшёл вон
id = 5, K = 785 - Пшёл вон
id = 6, K = 464 - OK
id = 7, K = 23 - OK
Как отфильтровать записи с меткой 'Пшёл вон'?
https://docs.microsoft.com/ru-ru/sql/ssms/visual-db-tools/create-subqueries-visual-database-tools?view=sql-server-2017 почитай

Leonid
02.07.2018
18:15:34

Sergey
02.07.2018
18:20:43

Shmaltorhbooks
02.07.2018
18:23:51
Подозреваю, что у парня mysql и переходить на иной движок никто не будет ради этой задачи

Sergey
02.07.2018
18:24:00
такие вещи надо в условии задачи включать
https://dev.mysql.com/doc/refman/8.0/en/window-functions.html
но вообще вот

Shmaltorhbooks
02.07.2018
18:25:17
Щас еще окажется, что у парня 5.5 и даже на 5.7 никто переходить не станет)))

Sergey
02.07.2018
18:25:32
опять же - не наши проблемы. в условиях задачи есть только структура таблицы и "хочу"
универсальный вариант - NOT EXISTS (subquery)

Google

Shmaltorhbooks
02.07.2018
18:26:45
Эта задача:
Есть таблица t1 и полями id, K.
Нужно вывести все записи, исключая те, в которых одинаковое K встречается более N раз, то есть вывести первые N записей с одинаковыми K.
Пример при N = 2:
id = 1, K = 464 - OK
id = 2, K = 785 - OK
id = 3, K = 785 - OK
id = 4, K = 785 - Пшёл вон
id = 5, K = 785 - Пшёл вон
id = 6, K = 464 - OK
id = 7, K = 23 - OK
Как отфильтровать записи с меткой 'Пшёл вон'?
Движок и версия БД какие?

Leonid
02.07.2018
18:28:00

Shmaltorhbooks
02.07.2018
18:29:27
Вон fes0r говорит, что в 8 мускуле это решаемо. Есть шансы переехать на 8?

Sergey
02.07.2018
18:32:12
вопрос эффективности
если у тебя там данных 100К рядов каких то можно не заморачиваться

Shmaltorhbooks
02.07.2018
18:34:00
А как not exists поможет, кстати?
В его конкретном случае - понятно. А какое-то общее решение я чот не представляю через not exists

Sergey
02.07.2018
18:35:25
оно просто на всех субд будет работать (вроде)
а хотя не, NOT EXISTS выкинет все ряды
я плохо условие прочитал

Shmaltorhbooks
02.07.2018
18:38:13
про какое общее ты говоришь?
Ну он привёл пример, в котором нужно отсечь записи, которых больше, чем, например две, из таблички. Но как я понял - ему надо выборка первых n записей из тех, которые под условие попадают
Последние 10 постов для списка user_id, например


Alexandr
02.07.2018
18:40:39
Ребята привет скажите а можно ли остановить выполнение функции? Ну к примеру есть у меня две функции: одна которая данные профиля пользователя вносит в базу данных,а вторая эти данные вытаскивает из базы данных. Дело в том,что функция которая данные тащит из БД,работает когда пользователь даже не внес свои данные в таблицу профиля. Вот как эту чертову функцию остановить,дать ей задержку,убить ее до выполнение одной функции,чтоб она распознала,что как только пользователь нажал на отправить,функция которая тащит данные,запускалась,обновляла страницу и выдавала бы мне данные пользователя. Постоянно выскакивает ошибка о том,что данных такого пользователя нету и переменная пустая неизвестна. Если внести данные вручную,то переменная выводит данные.


Sergey
02.07.2018
18:41:16
Ребята привет скажите а можно ли остановить выполнение функции? Ну к примеру есть у меня две функции: одна которая данные профиля пользователя вносит в базу данных,а вторая эти данные вытаскивает из базы данных. Дело в том,что функция которая данные тащит из БД,работает когда пользователь даже не внес свои данные в таблицу профиля. Вот как эту чертову функцию остановить,дать ей задержку,убить ее до выполнение одной функции,чтоб она распознала,что как только пользователь нажал на отправить,функция которая тащит данные,запускалась,обновляла страницу и выдавала бы мне данные пользователя. Постоянно выскакивает ошибка о том,что данных такого пользователя нету и переменная пустая неизвестна. Если внести данные вручную,то переменная выводит данные.
может не надо ее запускать?)
короч из твоего описания понятно только что ты делаешь какую-то чернь


Alexandr
02.07.2018
18:42:06
может не надо ее запускать?)
А как тогда вывести данные о пользователе? Ну в любом другом сайте в профиле ты заходишь и ты видишь свое имя,фамилию,город и тд. Тот же вк профиль