最近在折腾数据库,遇到一个小问题,想在一个字符串里面找另一个字符串的位置,这不就是平时编程时用的 indexOf 吗?我就想着,这 SQL 肯定也有类似的函数,一搜,果然有!不过搜到的结果让我有点懵,这玩意儿好像不是所有数据库都通用的。
我记得以前用过一个叫 INDEXOF 的函数,挺好用的。但这回查下资料,发现不同的数据库,实现方式还不太一样。有的数据库压根就没这函数!像我这回用的 PostgreSQL,就得用 POSITION 函数。
当时我就想,这不同的数据库,函数名字还不一样,用起来多麻烦。不过好在功能都差不多,都是找到字符串的位置。我简单试下 PostgreSQL 的 POSITION 函数,效果还行,跟我预想的一样。
- 先在数据库里尝试查询,发现报错,原来是没有这个函数。
- 百度搜索,发现不同类型的数据库实现方式还不一样。
- 锁定我现在用的数据库类型 PostgreSQL,搜索发现应该用POSITION函数。
- 回到数据库,继续尝试查询,成!
虽然找到能用的函数,但心里还是有点不爽。要是所有数据库都能统一用一个函数名,那该多省得每次都得去查。
实践出真知
这回的经历也让我明白一个道理,实践出真知!有些东西,看着简单,但真用起来,还是会遇到各种各样的小问题。以后再遇到类似的问题,我就不慌,直接上手试,错就改,总能找到解决办法的。
把我在 PostgreSQL 里面用的 SQL 记录一下,免得以后忘:
SELECT POSITION('查找的字符串' IN '被查找的字符串');
就是这么简单,直接替换成你要查的字符串就行。虽然不同的数据库函数名可能不一样,但只要找到对应的函数,用法都差不多。
免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。