我有一个使用 SQLite 以下列方式在 Ruby 中构建的数据库:
db.execute "CREATE TABLE IF NOT EXISTS Problems(ID INTEGER, stem BLOB NOT NULL, answer BLOB, datetime TEXT, lastmodifiedby TEXT, primary key (ID, datetime) )"
db.execute "INSERT INTO Problems VALUES(1, 'stem', 'answer', '12/26/2012 2:52:18 PM', 'bob')"
db.execute "INSERT INTO Problems VALUES(1, 'stem modified', 'answer', '12/26/2012 2:52:19 PM', 'bob')"
db.execute "INSERT INTO Problems VALUES(1, 'stem modified further', 'answer', '12/26/2012 2:52:20 PM', 'bob')"
前三个条目的 ID 相同,但时间不同。我目前正在使用以下代码来提取单个条目:
db = SQLite3::Database.new "#{dbname}"
stm = db.prepare "SELECT * FROM Problems WHERE ID=?"
stm.bind_param 1, id
rs = stm.execute
problem = rs.next
我的第一个问题 - 有没有办法压缩最后 4 行代码?
其次,当我从问题数据库中选择一个条目时,我将如何添加一个选项以便选择最近的条目(在本例中为第三个)?
最后,我如何选择某个 ID 的所有条目(这里我只有 int 1,但实际上还有很多其他条目),以便我可以将它们作为字符串输出/写入文件等。
我找到了有关最近条目选择的问题的答案,但它们似乎相当复杂。ORDER BY 会以某种方式起作用吗?
谢谢您的帮助。