首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >短php/mysql查询以删除两个表选择的位置

短php/mysql查询以删除两个表选择的位置
EN

Stack Overflow用户
提问于 2016-03-13 21:35:22
回答 1查看 49关注 0票数 1

我需要你的帮助来加速我的mysql查询。

我的php代码视图如下所示:

代码语言:javascript
复制
$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基础如下所示:

代码语言:javascript
复制
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;

每次重新加载页面时,我的代码都会执行三个查询,而我只需要执行一个查询。

我认为它应该看起来像:

代码语言:javascript
复制
Delete from product_list where (select product_list)  > (select count1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-13 21:59:15

我认为您正在查找以下查询:

代码语言:javascript
复制
DELETE FROM product_list 
WHERE NO > (SELECT  products FROM count1 LIMIT 1)

添加LIMIT 1只是一种安全措施,以防您在产品中有多个记录。

请注意,不需要首先选择MAX(NO)。如果没有要删除的内容,运行delete语句并不会有什么害处。那就什么也做不了了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35976163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档