Gifts, Code: insert into tbl ( ip, http_referer, create_date ) values ( '127.0.0.1', '', NOW() ). Надо как-то сделать чтобы при пустом значении рефа в таблицу писалось null, ну и reate_date я хз почему он пишет Now(), а не дату. Подсказали что для ip тип данных надо изменить на varchar, но не помогло. Пишет тоже самое Немного поковырялся, понял что проблема далеко не в типе данных. Вообще почему-то ничего не записывается в таблицы
good.god Еще раз. Покажите текст ОШИБКИ, а не запрос. По другому - покажите вывод функции mysql_error() сразу после проблемного запроса.
Мне не спиться... mytable - таблица с данными number - столб чисел в mytable {1,2,4,7,8,11,..} Ниже запрос смотрит number'ы и возвращает таблицу где: numb - число с которого начинается пропуск, len - сколько чисел пропущено. SELECT numb, (number-numb) AS len FROM (SELECT number, @num:=@num+1, @num AS numb, (if(number=@num, @temp:=0, @num:=number)) AS n FROM mytable, (SELECT @num:=0) AS num,(SELECT @temp:=0) AS temp) AS pretab WHERE n>0; Объяснять тут особ нечего, в подзапросе создан счетчик из переменных
привет ! Возник вопрос... Есть таблица с деревом вида NESTED SETS и есть список ID.. 3, 5, 7, 16 мне нужно вытащить с базы строки с этим Id и их детей.. Как видно 3 это родитель 7ого элемента .. но если в списке есть 3ий элемент мне не нужно чтоб он искал в его детях ... т.к полюбомы все дети третьего выбираются .. п.с а теперь вопрос как бы это сделать по оптимальнее и без запроса в цикле ? Зарание благодарен!
У Вас ID столб какого типа, INT? тогда не ставьте на цифры одинарные кавычки (с этими кавычками число будет восприниматься как VARCHAR) + вместо AND ставьте OR
Kruzak, почему AND ? Как id может иметь одновременно несколько значений? Code: SELECT * FROM `wp_posts` WHERE `ID` = '892' OR `ID` = '890' OR `ID` = '880' или лучше Code: SELECT * FROM `wp_posts` WHERE `ID` in(892, 890, 880)
Заливка базы через посредника php (phpMyAdmin, SypexDumper и.т.д) либо софт (Navicat , HeidiSQL и тп.) работает значительно хуже батника (загрузка базы 1Гб была очень проблематична проверено на практике): mysql -uroot -pghbdtn -hlocalhost db_name < db_file.sql (2 минуты проверено а то и быстрее) Кто подскажет софт работающий с такой же скоростью либо может есть GUI для mysql + mysqladmin?
Ещё использую mysql front (на торрентах есть точно). Но это уже софтина, не скрипт. Тоже шустро работает.
Разные инструменты пробывал. Но быстрее чем закачать из локального файла через командную строку не получается. Некоторые GUI-клиенты вообще вешаются когда большие файлы импортируешь...
да быстрее и нереально хотябы +2...5 мин а невисяк построчный) _rutracker.org/forum/viewtopic.php?t=3886880 вот GUI нарыл буду пробывать
возможно ли вытащить сразу пачку записей через group_concat(), но при этом ограничить их количество через limit? мускуль, инъекция
+toxa+ в подзапросе лимит сможет срезать SELECT GROUP_CONCAT(id) FROM (SELECT * FROM mytable LIMIT 10) AS pretab
Art!P да, спасибо, это помогло, но тогда следующий вопрос: т.к. мы ограничены длиной в group_concat_max_length, то возможно ли использование нескольких group_concat() в контексте одного запроса? ибо хочется тянуть не по 10 записей за раз, а, например, 50 с примером желательно ибо все мои попытки провалились =\ есть так же альтернативный вариант заюзать benchmark для накопления результатов запроса в переменную, но этот метод обладает рядом существенных недостатков =\ подразумевается [sql]...limit 0,10 .... limit 10,10 .... limit 20,10 итп
SELECT @x FROM (SELECT @x:=0x00, (SELECT 0 FROM откуда WHERE id>1 AND id<100 AND 0x00 IN(@x:=CONCAT(@x,"\n",колонка1,0x3a,колонка2))))x Где: LemonChiffon - выделено таблица откуда дергать данные и колонки, которые необходимо вытянуть. Lime - уникальный идентификатор записи (чаще всего это id). PaleGreen - это с какой по какую запись выводить. DarkOrange - разделитель между выводимыми строками. Orange - разделитель между выводимыми колонками. Можно тянуть по ~300-500к символов за раз.
Если фантазию задушить то SELECT GROUP_CONCAT(id) FROM (SELECT * FROM mytable LIMIT 0,10) AS pretab UNION SELECT GROUP_CONCAT(id) FROM (SELECT * FROM mytable LIMIT 10,10) AS pretab UNION SELECT GROUP_CONCAT(id) FROM (SELECT * FROM mytable LIMIT 20,10) AS pretab ... пока не надоест