C ++ Mysql Search'%Like%'错误。怎么解决?

时间:2016-12-10 11:28:10

标签: mysql sql search

我试过这些代码:

a_name LIKE %%'%s'%% ORDER BY
a_name LIKE %%%s%% ORDER BY
a_name LIKE %%s% ORDER BY
a_name LIKE %'%s'% ORDER BY
a_name LIKE \%%'%s'\%% ORDER BY
a_name LIKE \%%%s\%% ORDER BY

输出:

query(adem)

结果:

a_name LIKE  **0x1.37f7f4a7p-1039dem**' **0**RDER BY

RESULT2:

' at line 1 12637743454RDER BY 

问题原因%

我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:1)

like的模式是一个字符串。

您希望生成的查询如下所示:

select . . .
where a_name LIKE '**0x1.37f7f4a7p-1039dem**'
order by . . .

请注意模式周围的单引号。

以下是三个选项:

首先,传入你想要的字符串并连接通配符:

where a_name like concat('%', %s, '%')

其次,更改传入的字符串,使其具有通配符:

where a_name like '%s'

第三,将通配符与字符串标识符混合:

where a_name like '%%s%'

我实际上会提出第四个,即使用查询参数而不是查询字符串:

where a_name like concat('%', ?, '%')