我正在一起整理我的第一个ruby脚本,以读写mysql。

我想知道某个记录是否存在。我试过了:

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而不是True或False类,甚至是0/1。

我在这里想念什么?准备好的语句甚至是正确的用法吗?

最佳答案

为什么不使用计数

sql = "SELECT CASE WHEN COUNT(1) > 0 THEN 1 ELSE 0 END AS Exist FROM UserTrucks WHERE User = ? AND Truck = ?"


要么

sql = "SELECT CASE WHEN EXISTS(SELECT * FROM UserTrucks WHERE User = ? AND Truck = ?) THEN 1 ELSE 0 END AS Exist"

09-11 19:54
查看更多