2011-08-30 1 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

귀하의 마지막 쿼리는 '제품에서 num_rows로 선택 개수 (*)를 읽어야합니다'라고 생각하십시오. – Beth

+0

확인해주십시오 : 해당 MySQL입니까? –

답변

0

는 마지막 쿼리가 모든 레코드를 선택합니다.

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

당신은 사용할 수 있습니다 또는 어떤 레코드가 지정된 criteria1 또는 criteria2 일치 를 선택 : 당신이 선택하지 않고이 작업을 수행하려면 모든 레코드는 같은 것을 사용합니다. AND는 다르게 사용되며 레코드가 criteria1 및 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