2010-04-26 34 views
0
select id from dm_unit where aa like '%'||?||'%' 
+0

SQL方言是相关的 – 2010-04-26 10:43:00

回答

1

你需要躲避内部单引号,这可以通过他们加倍来完成:

select id from dm_unit where aa like '%''||?||''%' 
2

内引号需要进行转义?

select id from dm_unit where aa like '%\'||?||\'%' 
+0

或加倍...或者||是连接运算符和?是准备好的陈述的持有人。这就是为什么我们需要知道SQL方言。 – 2010-04-26 16:08:17

+0

@Alvaro G. Vicario - 这是一个声音。 – karim79 2010-04-26 16:21:31

1

我假设您使用?作为占位符。如果是这种情况,查询应该 改为select id from dm_unit where aa like ?,占位符的值应该稍后绑定到类似'%foobar%'的东西。

1

我想你在你的查询中写了\'在你的查询中使用单引号。但它不是一个正确的方法。使用单引号在我们的查询中使用“”而不是(2单引号)'(1个单引号)

0

抱歉,我不会给一个答案,我只是想知道为什么不使用:LIKE '%?%'

+0

由于它不是有效的占位符,因为问号包含在字符串中,因此不会被理解。此外,如果你有一个问题引用某人elses的答案,你应该留下评论,而不是作出新的答案。 – 2010-04-26 12:15:45

+0

谢谢詹姆斯:) 顺便说一句,我没有找到如何评论问题,而不是发表一个答案 – mcha 2010-04-26 12:48:33