0

mysqlとの間で読み書きする最初のrubyスクリプトを一緒にハッキングしています。

あるレコードが存在するか知りたい。私が試してみました:

sql = "SELECT EXISTS(SELECT * FROM UserTrucks WHERE User = ? AND Truck = ?)"
pst = con.prepare(sql)
does_exist = pst.execute(user_id, truck_id)

しかし、should_alertのクラスを出力すると、TrueまたはFalseクラス、あるいは0/1ではなく、MySQL::STMTになります。

ここで何が欠けていますか?プリペアドステートメントは、これに使用するのに適切なものでさえありますか?

4

2 に答える 2

1
sql = "SELECT IF( EXISTS(SELECT * FROM UserTrucks WHERE User = ? AND Truck = ?), 1, 0)"
于 2012-07-23T08:44:03.710 に答える
0

countを使ってみませんか

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" 
于 2012-07-22T16:05:08.210 に答える