如何在where子句中处理非ascii字符

ny6fqffe  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(341)

我在where子句中遇到了使用oracle、mysql、snowflake查询的非ascii字符的问题。

SELECT * FROM TABLE WHERE col = 'Niño Pobre, Niño Rico';

此查询不返回结果。
在where子句中是否有处理非ascii字符的解决方案,请回复我。
谢谢。

xmd2e60i

xmd2e60i1#

maurcin和user3278684就雪花数据wharehouse发表了评论。
在snowflake中,使用多种语言处理数据时,collation()函数非常有用。
https://docs.snowflake.net/manuals/sql-reference/functions/collate.html
https://docs.snowflake.net/manuals/sql-reference/functions/collation.html
注意事项和限制,列出了用于搜索的支持函数:https://docs.snowflake.net/manuals/sql-reference/collation.html#limited-支持内置函数中的排序规则
比如说,有一个名为feedback的表,有两列
|id |反馈|字符串|
|1 |'镍ño波布雷,尼亚加拉ñ里科的|
从反馈中选择collate(反馈字符串),其中反馈字符串类似“%ni”ño波布雷,尼亚加拉ño里科%';
如果要创建一个表来搜索特定语言的字符串,可以在snowflake中创建相同的表,如下所示:
创建表反馈(id号,反馈字符串varchar(20)collate'sp');
插入排序规则1(v)值(1,'niño波布雷,尼亚加拉ño波多黎各');
然后你可以用like搜索,但是要知道,n的搜索将接近ñ.

相关问题