gpt4 book ai didi

SQLite 函数的工作原理与 Oracle 的 "Translate"函数类似吗?

转载 作者:行者123 更新时间:2023-12-03 18:30:12 25 4
gpt4 key购买 nike

Oracle 有一个名为 translate 的函数,可用于将字符串中的各个字符按照出现的顺序替换为其他字符。它与 replace 函数不同,后者用整个第三个参数替换整个第二个参数。

translate('1tech23', '123', '456');     --would return '4tech56'
translate('222tech', '2ec', '3it'); --would return '333tith'

我需要它来实现对 SQLite 数据库的搜索,忽略查询字符串上的重音(巴西葡萄牙语)。将查询的表中的数据可以带或不带重音符号,因此,根据用户输入查询字符串的方式,结果会有所不同。

示例:搜索“maçã”,用户可以键入“maca”、“maça”、“macã”或“maçã”,并且表中的数据也可以是四种可能性之一。使用oracle,我只会使用这个:

Select Name, Id 
From Fruits
Where Translate(Name, 'ãç','ac') = Translate(:QueryString, 'ãç','ac')

...以及这些其他字符替换:

áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙãõÃÕäëïöüÄËÏÖÜâêîôûÂÊÎÔÛñÑçÇ

作者:

aeiouAEIOUaeiouAEIOUaoAOaeiouAEIOUaeiouAEIOUnNcC

当然,我可以嵌套多次调用 Replace,但这不是一个好的选择。

提前感谢一些帮助。

最佳答案

堪萨斯州立大学为 SQLite 编写了开源 Oracle 函数。它们包括translate()(顺便说一句,完整的UTF-8支持)并且可以在here中找到。 .

关于SQLite 函数的工作原理与 Oracle 的 "Translate"函数类似吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13958210/

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