2017-07-07 51 views

回答

0

你可以宣布第二选择为一个变量。

例如:

DECLARE @var as int 
SET @var = (SELECT COUNT(*) FROM table) 

SELECT 
Id, 
CASE WHEN level=2 THEN @var else 0 end as Grade 
FROM CLASS 
+0

谢谢WJS,那很好 –

0

基础上,你可以运行东西沿着这些路线的PHP文件:创建数据库连接

开始:

<?php 
$mysqli = new mysqli("example.com", "user", "password", "database"); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 

if语句检查表test如果它不存在,则将其丢弃创建表test与现场id这是一个INT

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) { 
    echo "Table creation failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 

然后如果条件尝试你在这里运行查询;这里他们有三个疑问。

首先 - 计算表中(其将等于0)

总列数 - 值添加到表

第三 - 再次计数的总的行,其这次将输出“1”

// this is what you may be asking? 
// they add to their sql query 
$sql = "SELECT COUNT(*) AS _num FROM test; "; 
$sql.= "INSERT INTO test(id) VALUES (1); "; 
$sql.= "SELECT COUNT(*) AS _num FROM test; "; 

确保查询已正确构建

if (!$mysqli->multi_query($sql)) { 
    echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 

然后运行该代码

do { 
    if ($res = $mysqli->store_result()) { 
     var_dump($res->fetch_all(MYSQLI_ASSOC)); // this will gather all records from the Database 
     $res->free(); 
    } 
} while ($mysqli->more_results() && $mysqli->next_result()); // You can find the links for documentation for more_results() and next_result() below 
?> 

的文档more_results()next_results()

注意$sql,你可以看到他们只是创建将一起运行,如果一切都是真的多个查询。

它会输出这样的:

array(1) { 
    [0]=> 
    array(1) { 
    ["_num"]=> 
    string(1) "0" 
    } 
} 
array(1) { 
    [0]=> 
    array(1) { 
    ["_num"]=> 
    string(1) "1" 
    } 
} 

请注意,这不是我的代码,我是从here

+0

能否请您指导我在SQL查询? –

+0

你走了,我有种打破了步骤...再次,这不是我的代码,归功于(所有者)[http://php.net/manual/en/mysqli.quickstart.multiple-statement .php]并且不要忘记阅读文档。这将有助于 – Samuel

+0

根据您想要运行的查询,只要结果为真,您也可以使用PHP在if语句中分解查询...... – Samuel