gpt4 book ai didi

mysql - 如何使用sql更精确地搜索用户?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:09:07 25 4
gpt4 key购买 nike

我有一个搜索用户及其用户名的 SQL 语句。这是代码:

SELECT * 
FROM user_info
WHERE username,name LIKE '$search%' and id!='$myId' OR MATCH (name,username) AGAINST ('$search' IN NATURAL LANGUAGE MODE) AND id!='$myId'
LIMIT 10

这里有什么问题吗?任何人都可以建议我更好更快的算法来搜索人吗?

最佳答案

我这里没有 MySQL 可以测试,但是语法 foo,bar like '...' 看起来不对。这可能需要分解并变成 OR。

在那之后,在 SQL 中 OR 的优先级低于 AND。所以 A OR B AND C 实际上意味着 A OR (B AND C)。因此,您的 id 条件不会执行您可能想要的操作。添加括号。

接下来值得怀疑的是您如何将搜索和 ID 插入 SQL。只是将内容粘贴到字符串中会使您容易受到 SQL 注入(inject)攻击,这是一个常见的安全问题。参见 https://xkcd.com/327/例如,注入(inject)攻击在实践中是什么样子的。查找“占位符”以了解如何做得更好。

至于更快的算法,您可能只需要索引。

关于mysql - 如何使用sql更精确地搜索用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52522044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com