|
Языки программирования Изучаем С++, Sql, php, Lua, Python |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
12.03.2010, 14:23 | #1 |
RMDC Donator
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
|
Sql запросы
Делимся sql запросами.
Пак запросов от LLIbIcpEP на чистку базы: Запрос аккаунты на которых нет персонажей: Запрос удаляет вещь у всех персонажей(В место entry ставим ид пердмета): Запрос удаляет вещь у всех торговцев, запрос по id (entry) вещи: P.s Выкладываем свои запросы в базу которыми вы пользуетесь. Последний раз редактировалось FreeBSD; 13.03.2010 в 18:42. |
7 пользователя(ей) сказали cпасибо: |
12.03.2010, 14:33 | #3 |
Гость
Сообщений: n/a
|
Выводит людей, сделавших определённый квест
PHP код:
PHP код:
PHP код:
Последний раз редактировалось Konctantin; 12.03.2010 в 14:48. Причина: Привел код в читабельный вид |
12.03.2010, 14:52 | #4 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Убедительная просьба:
Если выкладываете участок кода (как пример) пожалуйста не пишите его 1 строкой, тот кому он понадобится, должен в первую очередь понимать что и к чему, а не тупо его копировать (во избежания пустых вопросов) . Желательно делать комментарии в самом коде, поверьте толку от такого примера будет куда больше. |
7 пользователя(ей) сказали cпасибо: | FreeBSD (12.03.2010), mozilla (12.03.2010), tempura (28.10.2010), Vladimir (19.05.2010), Кот ДаWINчи (18.05.2010) |
12.03.2010, 15:01 | #5 |
RMDC Donator
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
|
Нужны запросы:
1)Удаление персонажей которые не привязаны к аккаунту. 2)удаление всех лишних записей после удаления персонажей. |
12.03.2010, 16:02 | #6 |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
1.
PHP код:
Последний раз редактировалось Konctantin; 12.03.2010 в 16:30. Причина: читабельный вид |
2 пользователя(ей) сказали cпасибо: | FreeBSD (12.03.2010) |
12.03.2010, 17:11 | #7 |
RMDC Donator
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
|
Код:
ERROR 1206 : The total number of locks exceeds the lock table size Вот на этих запросах выдает: Код:
DELETE `character_account_data`.* FROM `character_account_data` LEFT JOIN `characters` ON `character_account_data`.`guid` = `characters`.`guid` WHERE `characters`.`guid` IS NULL; DELETE `character_achievement`.* FROM `character_achievement` LEFT JOIN `characters` ON `character_achievement`.`guid` = `characters`.`guid` WHERE `characters`.`guid` IS NULL; Последний раз редактировалось FreeBSD; 12.03.2010 в 17:15. |
12.03.2010, 17:23 | #8 | |
Новичок
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
|
Как решение нашел увеличить размер innodb_buffer_pool_size в /etc/my.cnf
Тип обоих таблиц InnoDB, и если вы прочли статью на утдб, то там написано: Цитата:
Последний раз редактировалось mozilla; 12.03.2010 в 17:30. |
|
Пользователь сказал cпасибо: | FreeBSD (12.03.2010) |
13.03.2010, 14:19 | #9 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Просьба к автору первого поста - собирать всё в первый пост и, желательно, под спойлер (на этом форуме его функцию выполняет тэг оффтопа), над спойлером краткое описание - что там.
|
Пользователь сказал cпасибо: | FreeBSD (13.03.2010) |
13.03.2010, 17:52 | #10 |
Гость
Сообщений: n/a
|
Запрос аккаунты на которых нет персонажей:
Код:
#Выборка SELECT * FROM `realmd`.`account` where `id` not in (select account from `mangos`.`character`); #Удаление: DELETE FROM `realmd`.`account` where `id` not in (select account from `mangos`.`character`); Новое: Код:
#Выборка SELECT * FROM `realmd`.`account` where `id` not in (select account from `characters`.`characters`); #Удаление: DELETE FROM `realmd`.`account` where `id` not in (select account from `characters`.`characters`); |
13.03.2010, 18:43 | #11 |
RMDC Donator
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
|
Спасибо, исправил.
|
18.03.2010, 17:18 | #12 |
RMDC Donator
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
|
подскажите, как запросом сделать все логины(аккаунты) в базе большим регистром? Например был plauer, после запроса станет PLAUER.
|
18.03.2010, 17:26 | #13 |
Гость
Сообщений: n/a
|
Код:
UPDATE realmd.account SET username = UPPER(username) Последний раз редактировалось Desperado; 18.03.2010 в 17:58. |
Пользователь сказал cпасибо: | FreeBSD (18.03.2010) |
19.03.2010, 02:04 | #14 |
Гость
Сообщений: n/a
|
Не коректное! Много мусора останется!
Код:
DELETE FROM `character_inventory` WHERE `item_template` IN ('entry'); Код:
DELETE FROM `item_instance` WHERE `guid` in (SELECT item FROM `character_inventory` WHERE item_template IN ('entry'); DELETE FROM `character_inventory` WHERE item_template IN ('entry'); |
2 пользователя(ей) сказали cпасибо: | fedr (24.05.2010) |
19.03.2010, 21:39 | #15 |
Новичок
Регистрация: 19.03.2010
Сообщений: 22
Сказал(а) спасибо: 1
Поблагодарили 6 раз(а) в 2 сообщениях
|
вайпаем шмот, с инвенторя, гб, банка, почты итд
Код:
DELETE FROM item_instance WHERE CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(data, ' ', 4), ' ', -1) AS UNSIGNED)=номер шмотки; DELETE FROM item_instance WHERE CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(data, ' ', 4), ' ', -1) AS UNSIGNED)=номер шмотки; DELETE FROM `auctionhouse` where `itemguid` not in (SELECT `guid` FROM `item_instance`); DELETE FROM `character_inventory` where `item` not in (SELECT `guid` FROM `item_instance`); DELETE FROM `guild_bank_item` where `item_guid` not in (SELECT `guid` FROM `item_instance`); DELETE FROM `mail_items` where `item_guid` not in (SELECT `guid` FROM `item_instance`); DELETE FROM `character_gifts` where `item_guid` not in (SELECT `guid` FROM `item_instance`); Код:
DELETE FROM `item_instance` WHERE `guid` NOT IN (SELECT `itemguid` FROM `auctionhouse`) AND `guid` NOT IN (SELECT `item_guid` FROM `character_gifts`) AND `guid` NOT IN (SELECT `item` FROM `character_inventory`) AND `guid` NOT IN (SELECT `item_guid` FROM `guild_bank_item`) AND `guid` NOT IN (SELECT `item_guid` FROM `mail_items`); |
Пользователь сказал cпасибо: |
28.03.2010, 19:30 | #16 |
Гость
Сообщений: n/a
|
Кстате о запросе "Пак запросов от LLIbIcpEP на чистку базы:"
выполнил я его и как по волшебной палочке сервер крашиться каждые 4-5 минут ,ну в общем постоянно. хотя посмотрел и выглядит он на отлично. |
28.03.2010, 20:31 | #17 |
Гость
Сообщений: n/a
|
а догадаться мы сами должны почему, так видимо?
логи где? крашдампы где? |
29.03.2010, 16:30 | #18 |
Администратор
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
|
Есть некая таблица
id | sessionID | somethingID | time | ip Данные заносятся при каждом посещении пользователем определенной страницы. Простой insert. Раз в N мне необходимо считывать и обрабатывать информацию. Случаются вот такие ситуации: 1 session123 666 time 127.0.0.1 2 session222 666 time 127.0.0.1 Можно ли как-то удалить подобные дубликаты? Из этой строки, я бы хотел оставить либо первый, либо второй вариант. Т.е. убрать дубли по sessionID-somethingID и ip-somethingID.
__________________
Подключение к Jabber-конференции MaNGOS. |
29.03.2010, 20:21 | #19 | |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
|
Цитата:
или требуется удалить уже существующие дубликаты? |
|
Пользователь сказал cпасибо: | DeusModus (30.03.2010) |
30.03.2010, 13:47 | #20 | |
Администратор
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
|
Цитата:
__________________
Подключение к Jabber-конференции MaNGOS. |
|
01.04.2010, 23:36 | #21 | |
Гость
Сообщений: n/a
|
Цитата:
если считать что запись в таблице можно определить по полям somethingID, ip Код:
select max(id) from sometab t group by somethingID, ip having count(id) > 1 |
|
16.04.2010, 06:27 | #22 |
Гость
Сообщений: n/a
|
Народ, извиняюсь, может быть не там вопрос задаю.
Работаю с Личным Кабинетом. Необходимо создать чара в базе. Но нет возможности "завести" сервер. Если это возможно, можете привести sql запрос на создание в базе персонажа 1 лвл? Благодарю заранее. |
29.03.2010, 20:29 | #23 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
судя по всему - это статистика. В статистике невозможно поставить уникальные значения на поля.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
Пользователь сказал cпасибо: | DeusModus (30.03.2010) |
30.03.2010, 13:52 | #24 |
RuDB Dev
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
|
Создать временную таблицу, скопировать distinct записи и потом сделать truncate нашей таблице и переписать данные с временной таблицы.
|
30.03.2010, 13:55 | #25 | |
Администратор
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
|
Цитата:
Ни по одному из этих столбцов нельзя выбрать только DISTINCT сохраняя корректность данных. Да и смысл в том, что для каждого пользователя присутствует несколько записей. Удалить же нужно только дублирующие по смыслу. Или я что-то не понял?
__________________
Подключение к Jabber-конференции MaNGOS. |
|
01.04.2010, 18:26 | #26 |
RMDC Donator
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
|
помогите из этого запроса
Код:
SELECT * FROM `character_inventory` WHERE (`item_template`=xxx); во, сделал, только не знаю правильно или нет, но работает Код:
SELECT `characters`.`name` FROM `characters`, `character_inventory` WHERE `characters`.`guid` = `character_inventory`.`guid` AND `character_inventory`.`item_template` = 'xxx'; Последний раз редактировалось FreeBSD; 01.04.2010 в 18:35. |
01.04.2010, 23:30 | #27 | |
Гость
Сообщений: n/a
|
Цитата:
Код:
select c.name from characters c join character_inventory ci on ci.guid = c.guid where ci.item_template = 23345; |
|
16.04.2010, 08:20 | #28 |
Пользователь
Регистрация: 12.03.2010
Адрес: Беларусь
Сообщений: 54
Сказал(а) спасибо: 8
Поблагодарили 24 раз(а) в 17 сообщениях
Записей в дневнике: 1
|
Персонажей лучше создовать через игру, в противном случая надо строго копировать методику создания и писать какой-то скрипт или нечто похожее. Иначе ничего не получиться.
ЗЫ А какой смысл создавать перса, если вы не можете поднять сервер? |
09.05.2010, 01:46 | #29 |
Пользователь
Регистрация: 08.03.2010
Адрес: Ukraine
Сообщений: 41
Сказал(а) спасибо: 18
Поблагодарили 56 раз(а) в 20 сообщениях
|
У меня есть вопрос. Вот например есть такой запрос
А как сделать так чтоб сначала проверялось наличие таблицы honor, и только потом осуществлялась выборка из неё. Пробовал что-то вроде но так не работает.
__________________
Mangos 10505 + YTDB 564 + SD2 1826 |
10.05.2010, 00:20 | #30 | |
Гость
Сообщений: n/a
|
Цитата:
Код:
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'mangos' AND table_name = 'creature'; |
|
Пользователь сказал cпасибо: | DeusModus (28.05.2010) |
10.05.2010, 17:31 | #31 |
папа и мама IGMA
Регистрация: 08.05.2010
Сообщений: 27
Сказал(а) спасибо: 10
Поблагодарили 24 раз(а) в 9 сообщениях
|
Как сделать ограничение на ввод цифр? типа от 2 до 5, от 1 до 3 и т.п.?
|
10.05.2010, 19:16 | #32 |
Гость
Сообщений: n/a
|
|
14.05.2010, 12:00 | #33 |
Гость
Сообщений: n/a
|
Суть проблемы: есть необходимость с сайта отправить почту игроку 123 с итемом, ну допустим,ИД 123456 и количество 15 штук..... ну и текстом... "здраствуй вася"
чет еще смутно понимаю как почта работает подсобите плз |
14.05.2010, 16:34 | #34 |
RMDC Donator
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
|
запросом в базу это не как не сделать, если ток через telnet... есть голосовалки для пабликов, отдуда повыдирай нужные коды и будет тебе счастье)
|
14.05.2010, 23:04 | #35 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
Разве? Насколько помню это было реализовано в MMFPM (мини менеджер фор чего то там мангос), так что это сделать можно, только запрос будет не маленький и придется заполнять 2 таблицы и не 1 раз.
|
14.05.2010, 22:07 | #36 |
Гость
Сообщений: n/a
|
хм.. телнет чтож и на тм спс. щя бу чет думать.
|
18.05.2010, 13:15 | #37 |
Ученый
|
Сделать через запрос возможно, но слишком много возни, большой риск уронить сервер. ИМХО telnet в Мангосе есть, по этому юзай telnet. Тем более там буквально несколько строк когда нужно чтобы отправить самую заковыристую команду. Веселее всего шутдаун через сайт ставить
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть? admin: О Боже! admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет |
18.05.2010, 21:16 | #38 |
Пользователь
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
|
С телнетом через сторонние либы не возился, и думаю там много подводных камней.
Но есть же SOAP специально прикрученный для этого дела. Для Php рабочий пример лежит в сорцах мангоса mangos/contrib/soap/example.php нужно только поставить\включить библиотеку. Для питона пример работы был описан тут в блоге. |
19.05.2010, 07:25 | #39 |
Пользователь
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
|
Выводит список вещей, которые не привязаны к письму.
PHP код:
PHP код:
|
2 пользователя(ей) сказали cпасибо: | Hantet (20.05.2010) |
25.05.2010, 16:57 | #40 |
Гость
Сообщений: n/a
|
Подскажите пожалуйста запрос который выводил бы список персонажей и их ip
|