0

是否可以进行 1 次查询并仍然提取所需的数据?

我有很多查询,想合并它们以使页面加载更快。

干杯

$result = mysql_query("SELECT * FROM products where added = '$date'");
$new_items = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where isasin = 1");
$isasin = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where isasin = 0");
$notasin = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where EAN = ''");
$blank_ean = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where EAN = '-'");
$ean_line = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where EAN = 'PRERELEASE'");
$ean_prerelease = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'delete'");
$delete = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'VIDEO GAMES'");
$vgames = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'CONSOLE ACCESORIES'");
$conacc = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'Games'");
$games = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'Cool Stuff'");
$cool_stuff = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'Unknown'");
$Unknown = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where description = ''");
$no_desc = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where product_name = ''");
$no_name = mysql_num_rows($result);
//game stats
$result = mysql_query("SELECT * FROM products where format = 'Xbox 360'");
$xbox360 = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'Playstation 3'");
$ps3 = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'Nintendo DS'");
$nds = mysql_num_rows($result);  
$result = mysql_query("SELECT * FROM products where format = 'Nintendo Wii'");
$wii = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products where format = 'PC'");
$pc = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM products");
$total_games = mysql_num_rows($result);  
4

3 回答 3

4

你只需要从外表上看。此外,从外观上看,它是 MySQL。这是您的一个查询:

select
(SELECT count(*) FROM products where added = '$date') as Alias01,
(SELECT count(*) FROM products where isasin = 1) as Alias02,
(SELECT count(*) FROM products where isasin = 0) as Alias03,
(SELECT count(*) FROM products where EAN = '') as Alias04,
(SELECT count(*) FROM products where EAN = '-') as Alias05,
(SELECT count(*) FROM products where EAN = 'PRERELEASE') as Alias06,
(SELECT count(*) FROM products where format = 'delete') as Alias07,
(SELECT count(*) FROM products where format = 'VIDEO GAMES') as Alias08,
(SELECT count(*) FROM products where format = 'CONSOLE ACCESORIES') as Alias09,
(SELECT count(*) FROM products where format = 'Games') as Alias10,
(SELECT count(*) FROM products where format = 'Cool Stuff') as Alias11,
(SELECT count(*) FROM products where format = 'Unknown') as Alias12,
(SELECT count(*) FROM products where description = '') as Alias13,
(SELECT count(*) FROM products where product_name = '') as Alias14,
(SELECT count(*) FROM products where format = 'Xbox 360') as Alias15,
(SELECT count(*) FROM products where format = 'Playstation 3') as Alias16,
(SELECT count(*) FROM products where format = 'Nintendo DS') as Alias17,
(SELECT count(*) FROM products where format = 'Nintendo Wii') as Alias18,
(SELECT count(*) FROM products where format = 'PC') as Alias19,
(SELECT count(*) FROM products) as Alias20

每个计数都是一列,您应该相应地为它们加上别名

于 2011-08-30T15:43:23.900 回答
1
SELECT
      ( SELECT COUNT(*) FROM products where added = '$date' 
      ) AS new_items
    , ( SELECT COUNT(*) FROM products where isasin = 1
      ) AS isasin
    , ...
      ...
    , ( SELECT COUNT(*) FROM products 
      ) AS all_products 
于 2011-08-30T15:44:19.490 回答
0

好的,最后一个查询选择了所有记录,所以前面的查询是多余的。如果您想在不选择所有记录的情况下执行此操作,请使用以下内容:

Select * from products 
where (format='Xbox 360' OR format='PC' OR format='Playstation 3') ...

您可以使用 OR 选择任何符合指定条件 1 OR 条件 2 的记录。AND 的使用方式不同,表示记录必须与条件 1 和条件 2 匹配才能返回。在 w3schools 上查找 And/OR 以获得可靠的示例。

于 2011-08-30T15:40:10.730 回答