【问题标题】:C++ Mysql Search '%Like%' error. How to fix it?C++ Mysql 搜索“%Like%”错误。如何解决?
【发布时间】:2016-12-10 11:28:09
【问题描述】:

我尝试了这些代码:

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

结果2:

' at line 1 12637743454RDER BY 

问题原因%

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

【问题讨论】:

    标签: mysql sql search


    【解决方案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('%', ?, '%')
    

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 2015-01-11
      • 2012-06-26
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多