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'");

(不用担心 $database->... 部分,这是我的课。)


我如何将这些合二为一?

谢谢你。

4

2 回答 2

0

SELECT * FROM mainSite_othersWHERE (otherType='Item' OR otherType = 'Entity' OR otherType = 'Character') AND forGame='$gameName';

于 2013-04-28T04:59:50.823 回答
0

你可以使用“`OR'”。

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();
?>
于 2013-04-28T05:03:43.850 回答