@mysql_ru

Страница 134 из 142
Anton
08.02.2018
22:00:06
но вообще задумайся, точно ли это надо тебе. Возможно, есть смысл сортировать выборки по PRIMARY/дате, а уже на выходе пронумеровывать результат. В большинстве задач этого достаточно. Не зная самой задачи конечно сказать точно нельзя

Алексей
08.02.2018
22:01:58
То есть создать отдельную таблицу, в которой будет вестись нумерация, но через дату или primary?)

Anton
08.02.2018
22:02:06
нет

Алексей
08.02.2018
22:02:30
ааа

Google
Алексей
08.02.2018
22:02:31
все я понял

Anton
08.02.2018
22:02:41
получать результат отсортированный. А в выводе результата уже ккодом сайта/приложения или теми же сессионными переменными делать нумерацию.

Алексей
08.02.2018
22:03:38
хм хм хм))) дело в том, что дата будет одновременная) а primary, наверное, в рандомном порядке, пока нет идей как его обуздать. Но я подумаю

Anton
08.02.2018
22:05:06
Можно его сделать авттоинкрементом(ну, если можно). И проблема исчезнет

Алексей
08.02.2018
22:05:11
Ради интереса протестирую, если он не будет рандомить - идеально, очень хорошая идея

Anton
08.02.2018
22:05:21
а почти всегда праймари можно сделать автоинкрементом))))

Uml
09.02.2018
08:07:20
можете ошибку в условии запроса найти?

Сергей
09.02.2018
08:15:21
lost
09.02.2018
08:15:39
отворт приворот

снимаем дедлоки по выводу innodb

Uml
09.02.2018
08:16:11
SELECT sum(cp.summa) sum, count(cp.summa) count FROM contract_payment AS cp INNER JOIN contract_payment_types AS cpt ON cp.pt=cpt.id WHERE cp.cid IN (SELECT t.contractid cid FROM (SELECT is6.addressFrom, is6.contractid FROM inet_serv_6 is6) t WHERE (addressFrom BETWEEN UNHEX(CONV(INET_ATON('10.50.155.0'), 10, 16)) AND UNHEX(CONV(INET_ATON('10.50.155.254'), 10, 16))) OR (t.addressFrom BETWEEN UNHEX(CONV(INET_ATON('10.50.160.0'), 10, 16)) AND UNHEX(CONV(INET_ATON('10.50.160.254'), 10, 16)))) AND cp.dt BETWEEN '2018-01-01' AND '2018-01-31' AND cp.pt IN (11, 12, 13, 14, 15, 16, 18, 21, 22, 24, 25 )

в целом оно отрабатывает.но сумма неправильная выводится.но когда оставляю одну подсеть в этом запросе , то для нее правильно выводится

соответственно где-то условие я неправильно прописываю для нескольких подсетей

Google
Uml
09.02.2018
08:17:35
может там не OR надо

а что-то другое

Сергей
09.02.2018
08:18:17
выводи не суммы, а просто строки и смотри глазами. поймешь какие записи лишние/недостающие и под них запрос правь. потом вернешь сумму

а по твоей бизнес логике никто не поможет

Сергей
09.02.2018
08:20:23
SELECT sum(cp.summa) sum, count(cp.summa) coun ну вот ты тут уже суммы считаешь. сделай select *

и смотри че вернулось

и эту сумму руками же посчитать можешь по строкам

вот и проверяй че не сходится

Uml
09.02.2018
08:27:57
и эту сумму руками же посчитать можешь по строкам
другая сумма выходит.выходит такая же если я в этом запросе оставил ,s одну подсеть -получил cумму.потом другой запрос со второй подсетью -и прибавил полученную сумму с суммой полученной в первом запросе

и смотри че вернулось
получается ошибка в момент где я считаю сумму

Сергей
09.02.2018
08:28:55
ну ты полный запрос сделай

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

Uml
09.02.2018
08:29:33
ну ты полный запрос сделай
так я делаю полный запрос с двумя подсетями выходит одна сумма.делаю как ты сказал select * выходит другая сумма

нет) верни все строки и посчитай сумму столбика
посчитал.там не такая сумма выходит

Сергей
09.02.2018
08:29:57
ну вот ты где select * делаешь - смотри какие записи лишние или недостающие

какие условия не сработали в твоем запросе

понимаешь че делать надо?

Uml
09.02.2018
08:32:52
какие условия не сработали в твоем запросе
мой запрос в итоге показывает одну цифру. когда делаю запрос select *прибавляю платежи сам -выходит другая сумма. уже не знаю как менять начало вычисления суммы

Сергей
09.02.2018
08:33:44
ты с sql работал до этого?)

Google
Uml
09.02.2018
08:33:57
Сергей
09.02.2018
08:34:10
ну я не понимаю че ты отладить не можешь

у тебя есть все строки

для каждой строки проверь что она условию запроса удовлетворяет

глазами!

и думай почему строка туда попала/не попала

Uml
09.02.2018
08:40:49
и думай почему строка туда попала/не попала
ничего лишнего не нашел.дублирующих строк тоже

Андрей
09.02.2018
11:07:03
Ребята , в скрипте не отображается инвест после попоснение, где мне искать проблему , напудствие дайте хоть

Egor
09.02.2018
11:12:22
Для начала, расскажи подробнее о проблеме

Андрей
09.02.2018
11:16:44
Поставил скрипт сайта , тестировал пополнение , деньги на счёт приходят но в акаунте не отображаются

Egor
09.02.2018
11:18:25
Ну так это не проблема с MySQL. Скрипт на PHP?

Андрей
09.02.2018
11:18:59
Да на РНР

Egor
09.02.2018
11:19:51
Тогда тебе в группу по PHP.

Андрей
09.02.2018
11:20:03
Спасибо

Можно ссылку?

Egor
09.02.2018
11:21:36
@phpgeeks

Андрей
09.02.2018
11:24:20
Спасибо

Magic
09.02.2018
11:25:38
Кто может доступно объяснить в чем разница между tinyint(1) и например tinyint(4) ?

lost
09.02.2018
11:43:54
с точки зрения хранения данных - никакой разницы

Google
The
09.02.2018
17:20:03
Using temporary; using filesort при группировке, это же норма и никак не обойти?

lost
09.02.2018
17:28:22
как говорится, хуже уже не будет

обойти можно, зависит от индексов и запроса

у петьки зайцева есть познавательный видос по индексам в mysql, там в принципе можно подчерпнуть необходимый минимум

The
09.02.2018
18:34:58
запрос выбираем банки и количество отделений для конкретного штата США

EXPLAIN SELECT b.id, b.name, b.slug, COUNT(br.id) AS ttl FROM bank b INNER JOIN branch br ON br.bank_id = b.id INNER JOIN city c ON br.city_id = c.id INNER JOIN state s ON c.state_id = s.id WHERE s.slug = 'az' GROUP BY b.id ORDER BY ttl DESC LIMIT 20

The
09.02.2018
18:38:02
Петя зайцев highload наверное?)

Mark
09.02.2018
18:38:39
А, наверное, смотрел тут презентаху на сайте

Magic
10.02.2018
00:16:07
циферка означает кол-во знаков, выводимое в cli
Спасибо.а я то думаю, в пхпмайадмин все выводится одинаково.

Alexey
10.02.2018
02:27:06
у Пети Зайцева есть ещё пост и про то, что Using temporary; using filesort при группировке — это не всегда плохо!

https://www.percona.com/blog/2018/01/30/is-indexing-always-the-key-to-mysql-query-performance/

Anton
10.02.2018
07:45:15
ну, у меня конечно ужесный английский, но это ли он говорит? Using temporary; using filesort у него во всех примерах

The
10.02.2018
14:53:55
друзья, если у кого то есть желание, подскажите по этому вопросу: https://toster.ru/q/504537

Anton
10.02.2018
15:09:42
А есть ли смысл в пагинации в таких задачах?

Может выводить список городов а по городу уже аяксом подгружать отделения?

а то тут пагинация достаточно бесполезна получается

The
10.02.2018
15:34:56
ну тут больше интересно, можно ли этот запрос ускорить, и почему он такой медленный.

реализацию можно переделать, в принципе, но не хотелось бы :(

Anton
10.02.2018
15:36:19
ну, проблематично при сортировке по варчарам не из этой таблицы

Google
The
10.02.2018
15:54:51
там же индексы есть, при группировке двух таблиц, а потом сортировке по разным полям из этих двух таблиц, индексы что-ли не работают?

Anton
10.02.2018
15:55:31
сортировка по названию.

The
10.02.2018
15:55:33
написано что using index, using temporary, using filesort

Anton
10.02.2018
15:55:45
ну, для выборки использует

но временя основное у тебя тут на сортировку, а не на индекс

* а не на выборку

The
10.02.2018
15:56:29
а почему сортировка не производится с использованием индекса? или она использует индекс?

Сергей
10.02.2018
17:48:48
Слишком сложный вопрос?
SqlYog тебе в помощь, привыкай к хорошему

Anton
10.02.2018
17:49:21
Слишком сложный вопрос?
просто никтто этим говном не пользуется видимо))))

Сергей
10.02.2018
17:49:31
Да

Сергей
10.02.2018
17:52:19
Adamay
10.02.2018
17:55:26
Или HeidiSQL
А есть, что-то полностью свободное для Linux? Как я понял у SqlYog только проба под Windows. Не хочу, через wine

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