[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. good.god

    good.god Member

    Joined:
    23 Nov 2009
    Messages:
    260
    Likes Received:
    32
    Reputations:
    0
    Gifts,
    Code:
    insert into tbl ( ip, http_referer, create_date ) values ( '127.0.0.1', '', NOW() ).
    Надо как-то сделать чтобы при пустом значении рефа в таблицу писалось null, ну и reate_date я хз почему он пишет Now(), а не дату.
    Подсказали что для ip тип данных надо изменить на varchar, но не помогло. Пишет тоже самое:(
    Немного поковырялся, понял что проблема далеко не в типе данных. Вообще почему-то ничего не записывается в таблицы:(
     
    #1621 good.god, 23 Feb 2012
    Last edited: 23 Feb 2012
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    good.god Еще раз. Покажите текст ОШИБКИ, а не запрос. По другому - покажите вывод функции mysql_error() сразу после проблемного запроса.
     
    _________________________
    1 person likes this.
  3. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    Мне не спиться...

    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;


    Объяснять тут особ нечего, в подзапросе создан счетчик из переменных :D
     
  4. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    привет !

    Возник вопрос... Есть таблица с деревом вида NESTED SETS

    [​IMG]

    и есть список ID.. 3, 5, 7, 16

    мне нужно вытащить с базы строки с этим Id и их детей..

    Как видно 3 это родитель 7ого элемента ..

    но если в списке есть 3ий элемент мне не нужно чтоб он искал в его детях ... т.к полюбомы все дети третьего выбираются ..

    п.с а теперь вопрос как бы это сделать по оптимальнее и без запроса в цикле ?

    Зарание благодарен!
     
  5. g4lyfe

    g4lyfe New Member

    Joined:
    20 Sep 2010
    Messages:
    18
    Likes Received:
    3
    Reputations:
    1
    more examples of recent dorks where ?
     
  6. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    помогите вывести определенные ID записей
    логика примерно такая -
     
  7. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    У Вас ID столб какого типа, INT?
    тогда не ставьте на цифры одинарные кавычки (с этими кавычками число будет восприниматься как VARCHAR)
    + вместо AND ставьте OR
     
    #1627 Art!P, 2 Mar 2012
    Last edited: 2 Mar 2012
  8. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    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)
     
  9. Key

    Key Banned

    Joined:
    3 Jan 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Заливка базы через посредника php (phpMyAdmin, SypexDumper и.т.д) либо софт (Navicat , HeidiSQL и тп.) работает значительно хуже батника (загрузка базы 1Гб была очень проблематична проверено на практике):
    mysql -uroot -pghbdtn -hlocalhost db_name < db_file.sql (2 минуты проверено а то и быстрее)

    Кто подскажет софт работающий с такой же скоростью либо может есть GUI для mysql + mysqladmin?
     
  10. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Key, Sypex Dumper - http://sypex.net/ru
     
  11. Key

    Key Banned

    Joined:
    3 Jan 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    нет вешается он, писал же в скобках
     
  12. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Ещё использую mysql front (на торрентах есть точно). Но это уже софтина, не скрипт. Тоже шустро работает.
     
  13. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    Разные инструменты пробывал. Но быстрее чем закачать из локального файла через командную строку не получается.
    Некоторые GUI-клиенты вообще вешаются когда большие файлы импортируешь...
     
  14. Key

    Key Banned

    Joined:
    3 Jan 2012
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    да быстрее и нереально хотябы +2...5 мин а невисяк построчный)
    _rutracker.org/forum/viewtopic.php?t=3886880
    вот GUI нарыл буду пробывать
     
  15. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    возможно ли вытащить сразу пачку записей через group_concat(), но при этом ограничить их количество через limit? мускуль, инъекция
     
    _________________________
  16. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    +toxa+
    в подзапросе лимит сможет срезать
    SELECT GROUP_CONCAT(id) FROM
    (SELECT * FROM mytable LIMIT 10) AS pretab
     
    1 person likes this.
  17. +toxa+

    +toxa+ Smack! SMACK!!!

    Joined:
    16 Jan 2005
    Messages:
    1,674
    Likes Received:
    1,029
    Reputations:
    1,228
    Art!P
    да, спасибо, это помогло, но тогда следующий вопрос:
    т.к. мы ограничены длиной в group_concat_max_length, то возможно ли использование нескольких group_concat() в контексте одного запроса? ибо хочется тянуть не по 10
    записей за раз, а, например, 50 :)
    с примером желательно ибо все мои попытки провалились =\

    есть так же альтернативный вариант заюзать benchmark для накопления результатов запроса в переменную, но этот метод обладает рядом существенных недостатков =\

    подразумевается
    [sql]...limit 0,10 .... limit 10,10 .... limit 20,10 итп
     
    _________________________
    #1637 +toxa+, 4 Mar 2012
    Last edited: 4 Mar 2012
  18. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    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к символов за раз.
     
    _________________________
    #1638 Expl0ited, 4 Mar 2012
    Last edited: 4 Mar 2012
    1 person likes this.
  19. Art!P

    Art!P Elder - Старейшина

    Joined:
    22 Jan 2008
    Messages:
    169
    Likes Received:
    28
    Reputations:
    5
    Если фантазию задушить то
    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

    ...
    пока не надоест :D
     
  20. Ereee

    Ereee Elder - Старейшина

    Joined:
    1 Dec 2011
    Messages:
    560
    Likes Received:
    370
    Reputations:
    267
Thread Status:
Not open for further replies.