xRo*_*bot 31 mysql sql database postgresql
运行查询的最佳方法是什么,以便忽略字段中的空格?例如,以下查询:
SELECT * FROM mytable WHERE username = "JohnBobJones"
SELECT * FROM mytable WHERE username = "John Bob Jones"
Run Code Online (Sandbox Code Playgroud)
会找到以下条目:
John Bob Jones
JohnBob Jones
JohnBobJones
Run Code Online (Sandbox Code Playgroud)
我使用的是php或python,但我觉得这没关系.
SLa*_*aks 61
SELECT * FROM mytable
WHERE REPLACE(username, ' ', '') = REPLACE("John Bob Jones", ' ', '')
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 11
这取决于.如果你不关心良好的表现,那么你可以做很多事情,但大多数都会很慢.也许这对你没问题,但我会在这里留下这个答案,以防其他人阅读时想要快速解决方案.
如果您想要非常快的性能,则应该在数据库中索引不带空格的字符串.在PostgreSQL中,您可以在函数上创建索引.您可以使用它在列上创建索引,并用空字符串替换空格.这种方法的优点是除了创建索引之外不需要维护.
在MySQL中你不能这样做,所以最简单的方法是复制数据库中的数据 - 一次是空格而一次是没有.在WHERE子句中使用不带空格的列,但在SELECT列列表中使用原始列.这需要更多维护,因为列必须保持同步.您可以使用应用程序逻辑或数据库触发器执
归档时间: |
|
查看次数: |
51211 次 |
最近记录: |