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