我需要你的幫助,以加快我的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中的行必須是刪除類型的東西if(product_list.NO> count1.products){DELETE ROWS IN products_list } –
ofcourse produt_list.NO是表中的最大值,謝謝:) –