сделал. выбирается я новичёк, и поэтому мне трудновато сразу найти правильное решение. Спасибо за подсказку
а когда вопросы будут точными, то и ответы на них ты сможешь находить самостоятельно. Замкнутый круг.
капец! ужасно долго выгружается, опять я написал неправильно Добавлено спустя 4 минуты 22 секунды: Код (PHP): function escape($string) { if($string) { return mysql_real_escape_string($string); } } function insert($string){ $data = array(); $i = 0; $res = mysql_query("SELECT * FROM tof_art_lookup_sort where `tof_art_lookup_sort`.`ARL_ART_ID` IN ($string)"); while($r = mysql_fetch_array($res)) { $data[]="('".escape($r['ARL_ART_ID'])."','".escape($r['ARL_SEARCH_NUMBER'])."','".escape($r['ARL_BRA_ID'])."','".escape($r['ARL_DISPLAY_NR'])."')"; ++$i; if(50<$i) { $query = mysql_query('INSERT INTO `tof_art_lookup_xx`(`ARL_ART_ID`,`ARL_SEARCH_NUMBER`,`ARL_BRA_ID`,`ARL_DISPLAY_NR`) VALUES '.join(',',$data)); $i=0; $data=array(); } } if(sizeof($data)) { $query = mysql_query('INSERT INTO `tof_art_lookup_xx`(`ARL_ART_ID`,`ARL_SEARCH_NUMBER`,`ARL_BRA_ID`,`ARL_DISPLAY_NR`) VALUES '.join(',',$data)); } } $x = 0; $count_x = mysql_query("SELECT * FROM `vag_count`"); while($xx = mysql_fetch_array($count_x)) { $data_x = $xx['ARL_ART_ID00']; ++$x; if(0<$x){ insert($data_x); } }
заведи лог запросов. покажи все запросы так как они идут. =) посмотрим. ужасно долго это сколько? какое железо у сервера? может он не тянет быстрее.
ну за сутки выгрузило 40 тысяч строк Добавлено спустя 3 минуты 8 секунд: я знаю как можно ускорить, в ручную так делал подставлял сюда IN ($string) сразу пару сотен запросов, но не пойму как сделать их автоматом, а так тут только одно число вставляется и поэтому так долго
что за изврат с иксом? ++$x; if (0 < $x) { Добавлено спустя 1 минуту 41 секунду: $count_x = mysql_query("SELECT * FROM `vag_count`"); это что? сколько их там? может попробовать выбирать только одно интересующее тебя поле?
`tof_art_lookup_sort`.`ARL_ART_ID` по этом полю индекс есть? Добавлено спустя 2 минуты 13 секунд: выбирай порциями! =) как так? о_О это поле с числами, перечисленными через запятую? и оно ни к чему не привязано? дай глянуть структуру этой таблицы плс.
Код (Text): ARL_ART_ID00 3 4 5 8 28 54 Добавлено спустя 36 секунд: нет числа не через запятую, каждое число в новой строке
структуру таблицы, и объясни зачем тебе эта таблица вообще если там просто айдишники, какой от них смысл? почему они внутри полей? почему так? зачем?
главная таблица tof_art_lookup_sort Код (Text): ARL_ART_ID ARL_SEARCH_NUMBER ARL_BRA_ID ARL_DISPLAY_NR 1 063320055 95 0633 20055 1 63321510 95 6332 1510 1 731695001 2 731 695-001 2 731696001 2 731 696-001 3 K114V2365A 30 K1 (-) 14V 23/65A 3 731701001 2 731 701-001 3 0120488144 30 0 120 488 144 4 N114V3490A 30 N1 (-) 14V 34/90A 4 731702001 2 731 702-001 4 0986038340 30 0 986 038 340 4 037903018AX 587 037 903 018 AX таблица по которой производится отбор vag_count Код (Text): ARL_ART_ID00 3 4 5 8 28 54 ARL_ART_ID = ARL_ART_ID00 во второй таблице, в которой одно поле, находятся значения по которым производится отбор из первой таблицы(так как мне не надо все значения из таблицы 1, мне надо чтоб они соответствовали значениям из таблицы 2)
у меня крыша едет чувак, реально КАК И К ЧЕМУ ПРИВЯЗАНО ЕДИНСТВЕННОЕ ПОЛЕ-ТО????? Зачем тебе триста десять тысяч комбинаций? которые не привязаны ни к чему? О__О у тебя триста десять тысяч комбинаций строк из другой таблицы? так?
капец! 1) есть таблица tof_art_lookup_sort с полями Код (Text): ARL_ART_ID ARL_SEARCH_NUMBER ARL_BRA_ID ARL_DISPLAY_NR и таблица vag_count с полем Код (Text): ARL_ART_ID00 2) в поле ARL_ART_ID00 содержится часть номеров которые есть в таблице tof_art_lookup_sort в поле ARL_ART_ID 3) надо отобрать все значения таблицы tof_art_lookup_sort с соответствием по полю ARL_ART_ID = ARL_ART_ID00 4) что ещё не понятно? я вроде объяснил уже милион раз проблему, и показываю как решаю её, но прошу помощи в быстроте отбора данных
чувак, ну не понятно мне, не понятно. я тупой. давай так объясни, чтобы даже я понял. 1. у тебя в поле ARL_ART_ID00 таблицы vag_count содержатся группы айдишников строк из таблицы tof_art_lookup_sort 2. их там 310 000 штук таких групп. 3. и больше ничего нет!!!!!!!!!! какой в этом смысл?
)))))))) 1) да 2) да 3) нет, ну и что, а и не надо в той таблице больше ничего 4) зато у меня всё есть в таблице tof_art_lookup_sort, но дохрена !! мне столько не надо, вот я и пытаюсь выбрать только то что мне надо, а то что мне надо содержится в таблице в которой только одно поле, вот и пытаюсь отобрать эти данные я не знаю ещё как подробнее объяснить... есть 50 яблок в корзине 20 зелёных 5 красных 10 белых 15 сгнили ..выбираю только хорошие (т.е. зелёные, красные, белые) Код (Text): SELECT * FROM корзина where `корзина`.`цветовое описание` IN (зелёные, красный, белый)
ок. вопрос такой. нафига у тебя 310 000 вариантов? я к этому веду весь день. Если ты всё равно потом фигачишь всё в одну таблицу. Ты уверен, что ты не перебираешь одни и те же строки по сто раз? Ты уверен, что айдишники не повторяются в 310к комбинациях? ты уверен, что тебе нужны именно 310к ни к чему не привязанных комбинаций? может просто завести таблицу, где хранить айдишники, которые "хорошие", а все остальные считать гнилыми (или наоборот)? почему у тебя 310 тысяч комбинаций одного и того же без всяких различий? =) это вообще здраво? шизой попахивает. Либо ты что-то по дороге потерял, либо недоговариваешь.
да, 310 000 вариантов вот насчёт перебираю или нет строки по многу раз не уверен... айдишники в таблице vag_count не повторяются - это точно! а в таблице tof_art_lookup_sort повторяются(в примере выше это видно) они привязаны ARL_ART_ID = ARL_ART_ID00 таблица с "хорошими айдишниками" это и есть таблица vag_count
а, значит там по одному, да. точно. прости. тогда точно надо конкат попробовать =) если сервер не умрёт. Ты уверен, что они у тебя уникальные? или ты хотел бы чтобы они не повторялись?