【发布时间】:2013-12-13 03:27:35
【问题描述】:
在我的节点应用程序中,我正在执行一个选择查询。假设考虑用户将输入作为“abcdef”。我将从该字符串中获取前 4 个字母,例如“abcd”,并且我将检查匹配“abcd”的条目使用ILIKE 命令。
我的查询是:
client.query("select * from tn_village where level3 ILIKE '%"+substring+"%' OR level4 ILIKE '%"+substring+"%' OR level5 ILIKE '%"+substring+"%' OR level6 ILIKE '%"+substring+"%' OR level7 ILIKE '%"+substring+"%' OR level8 ILIKE '%"+substring+"%' OR level9 ILIKE '%"+substring+"%'" ,function(err,result)
{
res.send(result);
});
这里的子字符串是“abcd”..我按字母顺序得到结果。. But what i want is i have to show the row which is exactly matching first say row for "abcde" first and then the remaining results,,
帮我解决这个问题..提前谢谢..
【问题讨论】:
-
你能说说为什么它被否决了吗??
-
不知道为什么你被否决了。该查询不包含 order by 子句,因此您可能并不完全清楚您已经尝试过什么(尽管提到您在文本中进行了字母排序)并且看起来可能有一些无关的信息(例如提到您正在使用子字符串)。无论哪种方式,希望我的回答有所帮助。
-
哦,请确保您正在清理您的输入 - 如果您只是像这样将子字符串嵌入到查询中而不采取任何预防措施(例如使用占位符而不是字符串连接),那么您正在暴露自己进行 sql 注入。
标签: node.js postgresql