加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Sqlite – LIKE不区分大小写,不是英文字母

发布时间:2020-12-12 19:05:44 所属栏目:百科 来源:网络整理
导读:对不起我的英语不好. 我想检索其TITLE字段满足某些模式(不区分大小写)的行,并且此字段仅包含非英文字母. 我试过这个: SEARCH * FROM TABLE_NAME WHERE UPPER(column_name)LIKE UPPER(‘%pattern%’); 但是,它不起作用,可能是因为表中只包含非英文字母. 更
对不起我的英语不好.

我想检索其TITLE字段满足某些模式(不区分大小写)的行,并且此字段仅包含非英文字母.

我试过这个:

SEARCH * FROM TABLE_NAME WHERE UPPER(column_name)LIKE UPPER(‘%pattern%’);

但是,它不起作用,可能是因为表中只包含非英文字母.

更新:

例:

SELECT * FROM PartnersTable WHERE UPPER(TitleColumn) LIKE UPPER('%pattern%') ;

哪里:

TitleColumn可能包含“Газпром”,“Лукойл”,“Йотафон”,“Мечтаювелира”,

模式可能包含“газ”,“Ювелир”等.

我尝试使用添加到列定义的COLLATE NOCASE.如果你能够做到这一点,那么这就是你要走的路.

我测试了什么:

CREATE TABLE PartnersTable 
    (`id`,`TitleColumn` COLLATE NOCASE )
;

添加了与您的问题相同的日期:

INSERT INTO PartnersTable
    (`id`,`TitleColumn`)
VALUES
 (1,'Газпром'),(2,'Лукойл'),(3,'Йотафон'),(4,'Мечта ювелира')
;

然后尝试选择它:

select *
from PartnersTable
where TitleColumn like '%Ювелир%'

有用.

在这里演示:
http://sqlfiddle.com/#!7/ae8f8/2

编辑:
您也可以在没有UPPER的情况下使用它.默认情况下,LIKE不区分大小写.
根据文件:

Any other character matches itself or it’s lower/upper case equivalent (i.e. case-insensitive matching). (A bug: SQLite only understands upper/lower case for ASCII characters. The LIKE operator is case sensitive for unicode characters that are beyond the ASCII range. For example,the expression ‘a’ LIKE ‘A’ is TRUE but ‘?’ LIKE ‘?’ is FALSE.).”

在这里演示:
http://sqlfiddle.com/#!7/c9b5d/1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读