Есть две таблици data (name_data, cena) model (code_model, name_model, code_output) надо реализовать update `model` set `code_output`=1 where count(select * from `data` where `name_data` like '%name_model%')>0
1. для случая: name_data = name_model Код (Text): update model set code_output=1 where name_model in (select name_data from data) 2. RTFM, рекомендую основательно прочитать, разобратся и изучить основы SQL 3. Сразу отвечаю на вопрос: "что такое IN?" - см. п.2.
update model set code_output=1 where name_model in (select name_data from data) для limit 1 исполнялся 83.3123 сек в таблице model 25 000 записей, в data 114 000
update model, data set model.code_output=1 where model.name_model=data.name_data Но связывать таблицы надо по ключу типа integer с индексом, а не по name Иначе сразу убей себя об стену и не показывай людям кто ты есть.
на даный момент использую такой скрипт $sql_model=mysql_query("select `name_model` from `model` "); for ($i=0;$i<mysql_num_rows($sql_model);$i++) { $model=mysql_fetch_array($sql_model); $sql_data=mysql_query("select * from `data` where `name_data` like '%$model[0]%' "); if (mysql_num_rows($sql_data)>0) { mysql_query("update `model` set `code_output`=1 where `name_model` like '$model[0]' "); } else { mysql_query("update `model` set `code_output`=0 where `name_model` like '$model[0]' "); } } время исполнения - несколько часов. может можно как-то другим способом?
Есть две таблици модели и предложения продажи например модель (25 000 записей) samsung x820 предложения продажи (114 000) samsung x820 (black) samsung x820 (серый) samsung x820 (красный) мне надо для каждой модели проверить есть ли она в продаже без лайк обойтись не могу. Может Вы имеете больше опыта и можете подсказать как без лайк? Буду рад!
Пользуясь случаем, передаю привет Славе Лошкомойникову, который обьяснял мне работу БД. Блогодаря ему я узнал что LIKE существует вообще, лишь спустя 4 месяца. %) Чему чертовски рад ) ЗЫ. Он меня в свое время заставил написать программу реализующую работу индексов в БД. Осознание приходило тяжко, в то время литературы не было почти. Но когда пришло... :%))))
цвет и другие параметры не должны находиться в имени. - ошибка в структуре базы. правильная структура предложений продажи: `model_id` int(11) NOT NULL default '0', `color_id` int(11) NOT NULL default '0', ... KEY `model_id` (`model_id`), KEY `color_id` (`color_id`), ... +1
samsung x820 (black) samsung x820 (серый) samsung x820 (красный) это только примеры может быть samsung x820 + подарок samsung x820 + стартовый пакет да что угодно может быть! эти названия я тяну в базу из xml выгрузок прайсов интернет-магазинов тут без like не обойтись никак. Помоему!
гуголь - первая нормальная форма. вот когда тянешь тогда ОДИН раз ищи лайком. и вставляй уже по людски. не поможет - меняй прокладку между монитором и клавой.
гуголь - первая нормальная форма - это Вы про Гугл? вот когда тянешь тогда ОДИН раз ищи лайком. и вставляй уже по людски - можно на примере? что имели в виду? не поможет - меняй прокладку между монитором и клавой.
да, про гугл. http://php.ru/forum/viewtopic.php?t=9070 почитай эту ветку. И вообще ЧИТАЙ. прочтешь - распишешь тут выводы по структуре своей базы. ПОСЛЕ этого будем говорить дальше.
Есть таблица: [id] [login] [info] | 1 | vasya | fdgdf | | 2 | petya | fdgdf | | 3 | artem | sdafd | Создаём индекс по полю login, будет выглядеть примерно так: [id] [login] | 3 | artem | | 2 | petya | | 1 | vasya | источник http://php.ru/forum/viewtopic.php?t=9070 Если индекс по полю login, то почему [id] [login] | 3 | artem | | 2 | petya | | 1 | vasya | а не [login] | artem | | petya | | vasya | где про индексы в мускуле почитать?
как я понимаю у меня 1 н.ф. модели название_модели (text) наличие в продаже (int) предложения продажи название_предложения (text) цена (float) индексами надо сделать название_модели и название_предложения?
тебе надо ВЫСТРОИТЬ структуру, а не "посмотреть какая у тебя сейчас", кросавчег. и подумай, как ты будешь связывать эти две таблицы. дальше думай сам, я пас.
угу, кросавчег, трачу время на человека, который так и не попытался использовать СВОЮ голову, все ищет пути "а вдруг добрая фея сама все сделает, только бы у меня ни одна мыслишка не проскочила" $200 за оптимизацию твоей базы по скорости.
Ну это, горячие финские парни. Тут вообще-то много вариантов решений есть. Надо хотя бы ему намекнуть, куда копать. Человек явно с такой задачей первый раз столкнулся и запутался. joost Тебе тонко намекают на то, что, когда ты забираешь свою xml с прайсами из интернет-магазинов, имеет смысл в этот момент её обработать. То есть - не просто тупо по полям скопировать и положить в свою базу, а, например, распарсить строки с названиями товаров и сделать из поля "название товара" несколько полей. А вот теперь думай. Кстати, хочу напомнить - "правильно заданный вопрос уже содержит половину ответа".