select * from table where id= 1 or id = 2 or id =3
и так пока не кончатся все товары.а можно это как то сделать проще и по умному?
не знаю даже как написать вопрос чтобы погуглить
Форум → Программирование → PHP для идиотов → mysql как сделать выборку если условие - массив
Страницы: ← Следующая страница →
select * from table where id= 1 or id = 2 or id =3
и так пока не кончатся все товары.26 марта 2010 г. 12:09, спустя 12 минут 41 секунду
26 марта 2010 г. 13:05, спустя 56 минут 8 секунд
26 марта 2010 г. 13:11, спустя 6 минут 17 секунд
26 марта 2010 г. 14:32, спустя 1 час 20 минут 53 секунды
раньше я молился за твой сервер
Сейчас объясню. Пример ситуации: интернет магазин, корзина. Из сессий взяли массив добавленных в корзину id'ов товаров, теперь нужно одним запросом получить информацию о каждом из товаров, чтобы в корзине показать их. значит задача наша - объединить все эти id'ы в одном запросе. Раньше я делал так -и так пока не кончатся все товары.select * from table where id= 1 or id = 2 or id =3
а можно это как то сделать проще и по умному?
не знаю даже как написать вопрос чтобы погуглить
26 марта 2010 г. 14:33, спустя 1 минуту 20 секунд
26 марта 2010 г. 14:36, спустя 2 минуты 34 секунды
мы кстати вроде это тестировали (кто ни тьпомнит? вопрос поднимался 100 пудов, к чему пришли не помню) .. и мне кажется что ниухя он не молился )))
phpdude, я думаю оптимизатор запросов за него тоже молился
26 марта 2010 г. 18:38, спустя 4 часа 2 минуты 37 секунд
26 марта 2010 г. 18:46, спустя 4 минуты 8 секунд
mysql> explain select id from test where id = 201641 or id = 201642 or id = 201199;
+—-+————-+———–+——-+—————+———+———+——+——+————————–+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+—-+————-+———–+——-+—————+———+———+——+——+————————–+
| 1 | SIMPLE | customers | range | PRIMARY | PRIMARY | 4 | NULL | 3 | Using where; Using index |
+—-+————-+———–+——-+—————+———+———+——+——+————————–+
1 row in set (0.00 sec)
mysql> explain select id from test where id in (201641, 201642, 201199);
+—-+————-+———–+——-+—————+———+———+——+——+————————–+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+—-+————-+———–+——-+—————+———+———+——+——+————————–+
| 1 | SIMPLE | customers | range | PRIMARY | PRIMARY | 4 | NULL | 3 | Using where; Using index |
+—-+————-+———–+——-+—————+———+———+——+——+————————–+
1 row in set (0.00 sec)
26 марта 2010 г. 18:53, спустя 6 минут 41 секунду
26 марта 2010 г. 18:54, спустя 47 секунд
юзает
дак IN(x, …) кажись не юзает индекс
26 марта 2010 г. 19:03, спустя 9 минут 4 секунды
26 марта 2010 г. 19:31, спустя 28 минут 4 секунды
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!