【发布时间】:2019-06-01 10:41:43
【问题描述】:
我想从 SQL 查询中获取所有参数。在这种情况下,查询是数组中的纯字符串。 我有很多成对的查询,格式如下:
SELECT * FROM my_table t WHERE (t.attr1 = ? AND t.attr2 = ?) OR t.attr3= ?
它的对是(其中包含我要检索的参数):
SELECT * FROM my_table t WHERE (t.attr1 = 3 AND t.attr2 = 'str') OR t.attr3= 4
所以输出将是:
3, 'str' and 4.
如何根据这些对检索这些值?
我尝试在 Java 中使用正则表达式,但它可能很困难,因为 ?可以是一个数字, 一个字符串等等。该字符串可以包含另一个 ?这是字符串的一部分,例如:
UPDATE my_table SET attr2 = ? WHERE attr5 = ?
UPDATE my_table SET attr2 = 'Is it true?' WHERE attr5 = 'What is it?'
【问题讨论】:
-
如果您的查询格式正确,您可以搜索
' ? '——即问号周围的空格。在普通写作中,“?”之前永远不会有空格。 -
请问您的出发点是什么?你真的有一个绑定参数的字符串吗?或者,你的起点是第一个只有占位符的字符串吗?
-
@TimBiegeleisen:他说他有两个字符串。