2017-07-07 689 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