мне нужна ваша помощь, чтобы ускорить мой MySQL запроскороткий PHP/MySQL запросов для удаления, где две таблицы выбрать
мой взгляд PHP код выглядит следующим образом:
$product = query("SELECT `id`, `productname`, MAX(NO) FROM `product_list` WHERE 1");
$count1 = query("SELECT `products` FROM `count1` WHERE 1");
list($noproduct) = mysql_fetch_array($count1);
if (mysql_num_rows($product) > $noproduct) {
query("DELETE FROM `product_list` WHERE `NO` > ".$noproduct.");
}
и MySQL базы выглядит следующим образом:
CREATE TABLE `count1` (
`id` int(11) NOT NULL,
`products` int(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `count1` (`id`, `products`) VALUES
(1, 9);
CREATE TABLE `product_list` (
`id` int(11) NOT NULL,
`productname` varchar(55) NOT NULL,
`NO` int(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `product_list` (`id`, `productname`, `NO`) VALUES
(1, 'product1', 1),
(2, 'product2', 2),
(3, 'product3', 3),
(4, 'product4', 4),
(5, 'product5', 5),
(6, 'product6', 6),
(7, 'product7', 7),
(8, 'product8', 8),
(9, 'product9', 9),
(10, 'product10', 10),
(11, 'product11', 11);
ALTER TABLE `product_list`
ADD PRIMARY KEY (`id`);
ALTER TABLE `count1`
ADD PRIMARY KEY (`id`);
ALTER TABLE `count1`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
ALTER TABLE `product_list`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
Мой код выполняет три запроса каждый раз, когда страница перезагружается, и мне нужно сделать только один запрос.
Я думаю, что это должно выглядеть следующим образом:
Delete from product_list where (select product_list) > (select count1)
Что вы ожидаете от таблицы 'count1'? Я думаю, что у вас серьезное непонимание того, что делает ваш код. – mkasberg
в таблице «count1» задано фиксированное значение, а если вторая таблица имеет более высокий максимум (NO), то строки в product_list должны быть удалены как-то, если (product_list.NO> count1.products) {DELETE ROWS IN products_list } –
forcourse produt_list.NO MAX значение из таблицы, спасибо :) –