mysql - 我如何以一种可以接受的方式为 sql 编写“?%”?
问题描述
Search(request,respond){
var name =request.params.name;
var sql = "SELECT * FROM search.items WHERE name LIKE '?%'";
db.query(sql,name,function(error,result){
if(error){
throw error;
}
else{
respond.json(result);
}
});
}
我不太确定这个问题,但我认为 '?%' 被视为一个字符串我如何写 '?%' 没有?被视为一个字符串,但一个值将被用户输入替换为名称?
解决方案
将通配符放在参数上,而不是放在 SQL 字符串中。
Search(request,respond){
var name =request.params.name;
var sql = "SELECT * FROM search.items WHERE name LIKE ?";
db.query(sql,'%'+name+'%',function(error,result){
if(error){
throw error;
}
else{
respond.json(result);
}
});
}
推荐阅读
- rust - 没有挂断电话的ManuallyDrop不会导致内存泄漏吗?
- javascript - 使用 javascript 快速加载纯 html 文件,几乎没有服务器负载
- python - Pandas 多图线图看起来不对
- .net-core - 全新的 Monodevelop 安装无法恢复包
- python - 我怎样才能让我的脚本连续运行
- arrays - 将多个文档合并为一个文档,其中包含 MongoDB 中的两个文档字段
- macos - ios模拟器未在oracle虚拟盒下运行的macos catalina中启动-反应本机博览会项目
- c# - 如何在 EF Core 中自动映射 TPH 派生类?
- java - 在java中解析excel文件
- ios - 如何在导航栏中添加图像和按钮设计?