0
我正在破解我的第一個ruby腳本來讀寫mysql的數據。從MySQL結果中分配一個BOOL
我想知道某個記錄是否存在。我曾嘗試:
sql = "SELECT EXISTS(SELECT * FROM UserTrucks WHERE User = ? AND Truck = ?)"
pst = con.prepare(sql)
does_exist = pst.execute(user_id, truck_id)
但是當我打印類should_alert的,它是一個MySQL :: STMT,而不是一個真或假的類,甚至是0/1。
我在這裏錯過了什麼?準備好的聲明甚至是正確的用途?
'EXISTS'得多優化。在你的COUNT(*)'解決方案中,你實際上需要**統計所有行**。而在'EXISTS'查詢中,MySQL一旦找到一行就停止查找。 – 2012-07-22 16:06:35
我看到這將如何明確地返回給我1或0,但希望看到一個更標準的方式來做到這一點(在性能影響@ShlomiNoach提到的頂部)。 – 2012-07-22 16:10:18
這只是一個條件,你可以用任何表達來代替它。由於您使用的是WHERE子句,因此返回的行數很少,因此性能問題很小 – codingbiz 2012-07-22 16:39:18