2016-02-03 88 views
1

我有一個SELECT查詢只返回一個值(不是一行,而只是一個「東西」)。它看起來像返回只返回一個值的SELECT的字符串

SELECT IF(EXISTS(SELECT * FROM `Blah` WHERE <whatever>), 1, 0); 

我試圖與mysqli_result::fetch_assocmysqli_result::fetch_objectmysqli_result::fetch_array擺弄周圍,和他們都正在很奇怪。是否有像這樣的特殊情況的mysqli_result::fetch_string只輸出一個字符串,我可以撥打intval

+0

是一個「東西」是你的表中的一行?如果是的話,那麼爲什麼你不寫選擇的東西從'Blah' WHERE​​ –

+0

你可以在PHP中使用'mysql_num_rows()',並基於'WHERE'它將是0或1 – Yazan

+0

@SandeepBhandari不完全,我需要執行另一個表上的操作以該表中存在的條目爲條件。 – Bluefire

回答

3

你可以這樣做:

SELECT IF(EXISTS(SELECT * FROM `Blah` WHERE <whatever>), 1, 0) AS exists; 

而且使用任何上述功能得到行號0的「存在」列中。

+0

啊,謝謝你!我不太熟悉SQL,完全忘了那個功能...... – Bluefire

3

除了casraf的回答,另一種選擇可能是將計數加入到這個中 - 您可能想知道後面有多少blah符合您的標準。當您在幾年內重新訪問您的代碼時,可能會更容易回讀。

SELECT count(*) cnt FROM `Blah` WHERE <whatever> 

你最好能夠做到的「CNT」變量的布爾檢查(即計數0將==假的),而且還用它來找出你有多少場比賽了。

+0

好的提示,如果OP認爲未來的範圍可能更大,我會建議這樣做。 – casraf