Список сообщений Erika

вернуть значение встречающееся более 2 раз
DELIMITER // 
DROP FUNCTION IF EXISTS T_CUR // 
CREATE DEFINER = CURRENT_USER FUNCTION T_CUR() 
RETURNS VARCHAR(1024) CHARSET UTF8 
DETERMINISTIC 
LANGUAGE SQL 
SQL SECURITY INVOKER 
BEGIN 
DECLARE T_RET VARCHAR(1024) DEFAULT '';
DECLARE T_I, T_C, T_E BIGINT DEFAULT 0; 
DECLARE F_NAME, F_OPIS VARCHAR(1024) DEFAULT ''; 
DECLARE T_CURS CURSOR FOR SELECT `id`, `id_sd` FROM `ac_ac`; 
DECLARE EXIT HANDLER FOR NOT FOUND SET T_E:= 1; 
SET T_C:= (SELECT COUNT(`id`) FROM `ac_ac`); 
OPEN T_CURS; 
MW:LOOP 
FETCH T_CURS INTO F_NAME, F_OPIS; 
SET T_I:= T_I + 1; 
IF (SELECT COUNT(`id`) FROM `ac_ac` WHERE `id_sd` = F_OPIS) >= 2 THEN 
SET T_RET:= CONCAT_WS(',', T_RET, F_NAME); 
END IF; 
IF T_I >= T_C || T_E = 1 THEN LEAVE MW; END IF; 
END LOOP MW; 
CLOSE T_CURS; 
RETURN LEFT(RIGHT(T_RET) - 1, 1024); 
END // 
DELIMITER ; 

Хранимая функция выполняющая выборку повторяющихся два и более раз произвольное значение поля с именем `id_sd` и типом BIGINT UNSIGNED (большое целочисленное) и возвращает ее `id` перечисленные через запятую, таблицы с именем ac_ac которая в свою очередь имеет следующую структуру:
CREATE TABLE IF NOT EXISTS `ac_ac` 
( 
`id` SERIAL, 
`id_sd` BIGINT UNSIGNED NOT NULL, 
PRIMARY KEY (`id`), 
KEY (`id_sd`) 
) ENGINE InnoDB CHARACTER SET UTF8 COLLATE utf8_general_ci; 

Задача проста, подставьте нужные имена ячеек, и имя таблицы в функции на свои.
Залейте ее через phpMyAdmin, используйте как, встроенную функцию SQL в предложении SELECT исполняемого запроса в связке к примеру с IN.
Пожалуйста, пользуйтесь на здоровье)
Написал: Erika
вопрос по mysql
USE `имя бд`

Написал: Erika
Оптимизация MySQL запроса.
12. Башка, все поля в счетчике? Хм, что то новое, просветите

Добавлено через 03:18 сек.
13. Eyler, о Ваших велосипедах я стараюсь вобще не вспоминать, особенно перед сном.
Написал: Erika
Оптимизация MySQL запроса.
10. Trionix, жесть, а я вице президент Майкрософт, что называется сразу после Билли. Гг)
Может мне за Вас еще и код настропать? Если Вы читаете текст книги выборочно, мне Вас искренне жаль. В ней то и поиск по словосочетанию воспрещен, специально от подобных неуков. Могу еще с десяток книг подкинуть, если хотите. И все они прочтены от корки до корки, уверяю Вас.
----
Коли Вы считаете себя столь умным, к чему тогда весь этот цирк с оптимизацией горбатого кода, что за танцы с бубном? Дело Ваше, катайтесь на велике без колес.
Написал: Erika
Оптимизация MySQL запроса.
8. Trionix, возьмите любую книгу по администрированию СУРБД. И прочтите то что на первый взгляд Вам покажется самым не интересным.
По поводу статьи по ссылке. Взглянув на примеры кодов - читать не стала.
PS.
И еще одно, позвольте узнать, почему это личное мнение какого то мистера Зайцева я должна ставить выше вот этой кгиги ?
Написал: Erika
Оптимизация MySQL запроса.
6. Trionix, видимо Вы не дружите с книгами, не в курсе, что на каждый запрос выделяется определенный лимит времени и памяти. А запросы со звездочками автоматически регистрируются системой в журнале ламмерских запросов сервера БД. Это, как звонок пожарной сигнализации на который, опытный и аккуратный программист не может не обратить пристального внимания во избежание катастроф связанных с возможными нагрузками (например ддос), в виду своего личного профессионилизма.
Давайте. Создайте еще один на обе ноги кривой дцмс (ранних версий). Вас же будут тыкать носом, с Вас же будут скромно улыбатся в усы, тихонько перешептываясь знающие люди, профессионалы. По этому мне, как соловью - извращайтесь.
PS.
Но если же Вы вдруг произошли из славного рода Страшилы Мудрого, пардон - ищите Элли. На совместных теннингах со всей ее гоп компанией, стопуя незадачливых туристов по пути к Гудвину Вы волей - не волей научитесь немного и изредка, чуток пошевеливать своими соломенными извилинами)

Добавлено через 06:36 сек.
5. Zдешний, о чем Вы?
Человек спросил совет по оптимизации горбатого кода - я его дала. Возможно в этой отрасли институтов я не заканчивала, но книг на своем веку прочла не мало. По этому его по праву можно назвать авторитетным.
Возможно Вас интересуют какие нибуть конкретные моменты. Тогда будьте добры - уточните.
Написал: Erika
Оптимизация MySQL запроса.
В место звездочек в COUNT(*) поставьте значение какого нибуть одного поля например, примака. После измерьте скорость выполнения запроса, прирост очевиден. Используйте в запросах LIMIT. Если не надо много одинаковых значений - сгруппируйте их. Еще лучше пометьте UNIQUE непосредственно в теле таблицы. Выводите в SELECT не звездочкой, а только имена нужных Вам полей перечисленных через запятую, Используйте хранимый код он быстрее выполняется. SQL на самом деле на много фукциональнее и богаче чем Вы можете себе это вообразить, молодой человек. Посему, советую изучить его глубже, воспользуйтесь специализированной литературой для этого.
Удачи в разработке. Всех Вам благ
Написал: Erika
Вопрос - Ответ по MySQL
612. unimax,
<?php 
if($table['test'] < time() + 60 * 60 * 2)
 echo 'Перекур. Прошло 2 часа.'; 
else 
 echo 'Таки рановато'; 

Написал: Erika
вернуть значение встречающееся более 2 раз
Сейчас, только достану свой хрустальный шар...
Конечно лестно когда тебе присваивают сверх естественные способности. Но все же, вы явно переоцениваете всех нас, молодой человек.
Для начала опишите структуру таблицы

Добавлено через 03:34 сек.
Iznaur95 (1 Мая 2013 / 22:30)
хотя бы подскажите почему ORDER BY `id` ASC/DESC никак не влияет на этот запрос
SELECT * FROM table GROUP BY user_id HAVING count(*) > 1
Что за горбатый велик без колес?
Написал: Erika
OPTIMIZE TABLE IN TRIGGER
Доброго времени суток, уважаемые форумчане.
Триггер не хочет оптимизировать таблицу.
DELIMITER // 
DROP TRIGGER IF EXISTS ac_blog_dir //
CREATE DEFINER = CURRENT_USER TRIGGER ac_blog_dir BEFORE INSERT ON ac_blog_dir 
FOR EACH ROW 
BEGIN 
OPTIMIZE TABLE ac_blog_dir;
END // 
DELIMITER ;
Думала может у меня еще OPTIMIZE TABLE для InnoDB не работает, заменила на
ALTER TABLE ac_blog_dir ENGINE InnoDB

Но и от этого
#1422 - Explicit or implicit commit is not allowed in stored function or trigger
(Явная или не явная фиксация не позволена в сохраненной функции или триггере)

Может кто знает, как обойти эту бугагу? Подскажите, а...
Написал: Erika