当前位置: 首页 > 面试题库 >

字符串文字中的SQLite绑定

水昊阳
2023-03-14
问题内容

如果我的查询是使用sqlite3

SELECT * FROM table WHERE title LIKE '%x%'

它将匹配包含的字符串x。我想做x一个可绑定的参数,例如:

SELECT * FROM table WHERE title LIKE '%x?%'

但是,这是无效的,因为它''是字符串文字。是否有某种方式?可以在文字内转义?我知道我可以构建可绑定参数以包含%,然后使用

SELECT * FROM table WHERE title LIKE ?

但这将责任从处理SQL注入而不是绑定接口转移到了我的代码中。有更好的解决方案吗?


问题答案:
SELECT * FROM table WHERE title LIKE '%' || ? || '%';


 类似资料:
  • 问题内容: 考虑以下代码 问题在于,SQL语句中的引号没有被转义。如果我使用PHP编程,则在将字符串插入SQL查询之前,将使用sqlite_escape_string之类的函数对字符串进行转义,但是我似乎找不到C ++中的等效函数。我可以构建自己的sqlite_escape_string之类的函数,但我确定必须已经编写/测试了一个… C ++是否有sqlite_escape_string()等效函

  • 当我有一个字符串需要将一个字符连接到它的结尾时,我应该更喜欢超过是否有任何性能原因? 我知道数组字符串连接和字符串生成器,我并不是在询问一般情况下如何连接字符串的建议。 我也知道有些人会有冲动向我解释过早的优化,而且一般来说我不应该为这些小事情费心,请不要... 我之所以问这个问题,是因为从编码风格的偏好来看,我更倾向于使用后一个,但我觉得第一个应该表现得稍微好一点,因为知道所附加的只是一个字符,

  • 问题内容: 这是以前有关Java中的String初始化的一些问题的后续问题。 在用Java进行了一些小测试之后,我面临以下问题: 为什么我可以执行此语句 当str2一个String对象初始化为,但我不能调用方法toString()上str2?那么Java如何将空字符串对象和字符串文字串联起来? 顺便说一句,我还尝试将一个初始化为null和字符串文字的Integer连接起来,”a_literal_s

  • 在普通字符串中,我可以用反斜杠转义: 在字符串文字中有可能做同样的事情吗?反斜杠不再是转义字符: 到目前为止,我看到的唯一解决方案是字符串连接,这非常难看,以及嵌套插值,这开始变得有点可笑:

  • 对性能是否有影响? 不同Java版本的行为是否有差异?