我正在尝试将引用的列表传递给带有Ruby的IN子句中的占位符。
具体地说:
query = "
SELECT *
FROM PRICE
WHERE REGION IN (?)"然后我使用Ruby:dataset = dbr[query, param_values]; dataset.sql。如果以字符串形式传递param_values:param_values = "'NSW1', 'VIC1'",where子句将变成:WHERE REGION IN ((N'''NSW1'', ''VIC1''')),它不能工作--大概有太多的引号了。如果我尝试将该参数作为引用字符串数组(如:param_values = %w[NSW1 VIC1] )传递,where子句将变成:WHERE REGION IN ((N'NSW1' = N'VIC1')),它将无法工作。
有什么有用的东西吗?
发布于 2022-04-08 23:11:14
query = "
SELECT *
FROM PRICE
WHERE REGION IN ?"
regions = Sequel.lit("'NSW1', 'VIC1'")
sql = db.fetch(query, regions).sql
puts "sql: #{sql}"给予:
sql: SELECT *
FROM PRICE
WHERE REGION IN ('NSW1', 'VIC1')这就是我们想要的。
https://stackoverflow.com/questions/71792230
复制相似问题