2013-04-28 3 views
0

* Обратите внимание, что если вы можете придумать более конструктивный заголовок, отредактируйте его.Попытка объединить несколько запросов в один запрос


У меня есть таблица, которая выглядит следующим образом:

id | forGame | otherType | otherName | otherDesc 
9  |+Stellar+Dawn |Character  |Car    |Car 
10  |+Stellar+Dawn |Item   |Brugson Burson |a guy 
11  |+Stellar+Dawn |Item   |Space Pie  |A pie from space 

Теперь моя проблема заключается в том, что я пытаюсь отделить несколько запросов в одном:

$gameOther_typeItem = $database->queryDB("SELECT * FROM `mainSite_others` WHERE otherType='Item' AND forGame='$gameName'"); 
$gameOther_typeEntity = $database->queryDB("SELECT * FROM `mainSite_others` WHERE otherType='Entity' AND forGame='$gameName'"); 
$gameOther_typeCharacter = $database->queryDB("SELECT * FROM `mainSite_others` WHERE otherType='Character' AND forGame='$gameName'"); 

(Don» t беспокоиться о $ database -> ... part, это мой класс.)


Как я могу объединить их в один?

спасибо.

+1

Я считаю, что слово, которое вы ищете, "' OR'". – Plummer

+0

у вас есть все в обратном направлении, несколько в одном. Ни один из них не много. – 2013-04-28 05:03:19

ответ

0

Вы можете использовать «ИЛИ».

SELECT * FROM my_table WHERE column1 = value1 AND column3 = value3 OR column2 = value2 AND column3 = value3 

Или вы можете использовать несколько запросов для выполнения нескольких запросов одновременно?

http://php.net/manual/en/mysqli.multi-query.php

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT CURRENT_USER();"; 
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5"; 

/* execute multi query */ 
if ($mysqli->multi_query($query)) { 
    do { 
     /* store first result set */ 
     if ($result = $mysqli->store_result()) { 
      while ($row = $result->fetch_row()) { 
       printf("%s\n", $row[0]); 
      } 
      $result->free(); 
     } 
     /* print divider */ 
     if ($mysqli->more_results()) { 
      printf("-----------------\n"); 
     } 
    } while ($mysqli->next_result()); 
} 

/* close connection */ 
$mysqli->close(); 
?> 
+0

Спасибо! Отлично. – 2013-04-28 05:11:13

0

SELECT * FROM mainSite_others WHERE (otherType = 'Пункт' ИЛИ ​​otherType = 'Сущность' ИЛИ ​​otherType = 'Характер') и forGame = '$ GameName';

+0

Спасибо, но все же TPlummer отлично поработал. – 2013-04-28 05:10:56

Смежные вопросы