2011-08-30 58 views
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); 
+1

你需要的行,或者只是每一個計數? – atrain

+0

我認爲你的最後一個查詢應該是'select count(*)as num_rows from products' – Beth

+0

請確認:是MySQL嗎? –

回答

0

好吧,最後一個查詢選擇了所有記錄,使前面的查詢是多餘的。如果你想做到這一點沒有選擇的所有記錄使用類似:

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

您可以使用或選擇任何記錄符合指定標準1或criteria2。 AND的用法不同,意味着記錄必須匹配criteria1 AND criteria2才能返回。在w3schools上查找和/或瞭解固體示例。

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 

每個計數的列,您應該別名他們相應

+0

你錯過了幾個逗號,但你打我29秒:) –

+1

@ypercube幾?我錯過了所有這些!感謝您的支持,我確定了答案。 Upvotes歡迎:)只是你知道,你以前已經在幾秒鐘內擊敗過我,以及... –

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 
相關問題