天道酬勤,学无止境

Making unique key case insensitive 相关文章

原文信息:Making unique key case insensitive

This is my schema for mysql table, im using mysql 5 -- -- Table structure for table `DATA_USER_ROLE` -- DROP TABLE IF EXISTS `DATA_USER_ROLE`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `DATA_USER_ROLE` ( `ID` int(11) NOT NULL, `NAME` varchar(128) NOT NULL, `VAL_ID` int(11) NOT NULL, `CREATION_TIME` datetime NOT NULL, `ROLE_TYPE` int(11) NOT NULL, `STORAGE_TYPE` int(11) NOT NULL, PRIMARY KEY (`ID`), UNIQUE KEY `BV_AC_ROLE_KEY_IDX` (`NAME`,`VAL_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Needed UNIQUE KEY case in sensitive


更多相关搜索:点击搜索查看



MySQL Case Insensitive but Accent Sensitive UTF8 Unique Key
I know there are a lot of similar questions on SF, but I think mine is different enough to warrant a new question. I have a table that has a single column as utf8 with utf8_unicode_ci. It also has a unique key on this column along with another column marking a language code. The data in the column is in many different scripts (Latin with various accents, Chinese, and Russian, among others). The problem is that I will sometimes want to enter in two words with different meanings that only differ by a diacritic (i.e. Spanish ano vs año). Since utf8_unicode_ci is both case and accent insensitive

2021-05-02 05:48:37    分类:问答    mysql   unicode   utf-8   collation

不区分大小写的array_unique(case-insensitive array_unique)
问题 我试图写几行代码以使不区分大小写的数组唯一类型函数。 这是我到目前为止的内容: foreach ($topics as $value) { $lvalue = strtolower($value); $uvalue = strtolower($value); if (in_array($value, $topics) == FALSE || in_array($lvalue, $topics) == FALSE || in_array($uvalue, $topics) == FALSE) { array_push($utopics, $value); } } 麻烦的是if语句。 我认为我的语法有问题,但是我对PHP还是比较陌生,我不确定它是什么。 有什么帮助吗? 回答1 function array_iunique( $array ) { return array_intersect_key( $array, array_unique( array_map( "strtolower", $array ) ) ); } 回答2 您要将lvalue和uvalue lvalue都设置为小写版本。 $uvalue = strtolower($value); 应该 $uvalue = strtoupper($value); 也就是说,这可能会更快一些。 您的函数的性能将呈指数级下降

2021-04-10 02:00:49    分类:技术分享    php   arrays   loops   foreach

MySQL不区分大小写但区分口音的UTF8唯一键(MySQL Case Insensitive but Accent Sensitive UTF8 Unique Key)
问题 我知道科幻小说中有很多类似的问题,但我认为我的观点与众不同,足以提出一个新的问题。 我有一个表,其中有一个单列为utf8和utf8_unicode_ci。 它在此列上还有一个唯一键,以及另一个标记语言代码的列。 列中的数据使用许多不同的脚本(拉丁字母,带有不同的口音,中文和俄语等)。 问题是我有时会想输入两个词,它们的含义不同,只是变音符的意思不同(即西班牙语ano vsaño)。 由于utf8_unicode_ci不区分大小写和重音,因此它认为它们是相同的,只允许我输入一个。 糟透了。 理想情况下,我只是将整个列切换为不区分大小写但区分重音的某种排序规则,但这似乎不存在。 许多不同的东西都使用此列,因此我不希望将该列的默认排序规则更改为utf8_bin,以免混淆大小写。 因此,所有这些都说明了,我需要一种解决方案,该解决方案不会影响击中此列的许多现有查询中的默认区分大小写,但允许我添加仅带有变音符号的单词。 有想法吗? 如果需要的话,我只会将唯一键约束切换到utf8_bin,但我不想这样做,因为我从不希望表中的两件事仅因大小写而不同。 回答1 我唯一能想到的(没有找到适合您需要的排序规则)是在应用程序层(MySQL外部)进行一些更改,以照顾到差异化。 例如,由于您不关心大小写,因此可以以编程方式执行一些操作来降低数据库中所有行的大小写。 然后将排序规则更改为utf8_bin

2021-05-12 15:34:20    分类:技术分享    mysql   unicode   utf-8   collation

c# Dictionary: making the Key case-insensitive through declarations
I have a Dictionary<string, object> dictionary. It used to be Dictionary<Guid, object> but other 'identifiers' have come into play and the Keys are now handled as strings. The issue is that the Guid keys from my source data are coming as VarChar, so now a key of "923D81A0-7B71-438d-8160-A524EA7EFA5E" is not the same as "923d81a0-7b71-438d-8160-a524ea7efa5e" (wasn't a problem when using Guids). What's really nice (and sweet) about the .NET framework is that I can do this: Dictionary<string, CustomClass> _recordSet = new Dictionary<string, CustomClass>( StringComparer.InvariantCultureIgnoreCase)

2021-04-09 11:26:22    分类:问答    c#   dictionary   case-insensitive

如何在 SQLite 中创建不区分大小写的唯一列(How to make a case-insensitive unique column in SQLite)
问题 我一直无法找到答案。 我正在尝试创建一个具有唯一电子邮件地址列的表。 当我这样做时 CREATE TABLE users ( email TEXT PRIMARY KEY, password TEXT NOT NULL CHECK(password<>''), UNIQUE (lower(email)) ) 使用 PDO 时,出现错误: 致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[HY000]:一般错误:1 靠近“(”:script.php 中的语法错误:65 堆栈跟踪:#0 script.php(65):PDO->exec ('CREATE TABLE us...') #1 {main} 在第 65 行的 script.php 中抛出 第 65 行是CREATE TABLE行。 如果我取出UNIQUE ,它工作正常。 有更好的方法吗? 回答1 COLLATE NOCASE 是您的朋友: CREATE TABLE users ( email TEXT PRIMARY KEY, password TEXT NOT NULL CHECK(password<>''), UNIQUE (email COLLATE NOCASE) ) 回答2 为了速度,首先将所有输入小写,并使用普通的唯一列。 这对于读取比写入更频繁的用例非常有用

2021-06-11 08:57:53    分类:技术分享    sqlite   pdo

C#中字符串键类型不区分大小写的字典(Case-INsensitive Dictionary with string key-type in C#)
问题 如果我有Dictionary<String,...>是否可以使ContainsKey方法不区分大小写? 这似乎相关,但我不太了解:c#字典:通过声明使Key不区分大小写 回答1 这似乎相关,但我不太了解:c#字典:通过声明使Key不区分大小写 确实是有关的。 解决方案是告诉字典实例不要使用标准的字符串比较方法(区分大小写),而要使用不区分大小写的方法。 这是使用适当的构造函数完成的: var dict = new Dictionary<string, YourClass>( StringComparer.InvariantCultureIgnoreCase); 构造函数需要一个IEqualityComparer,它可以告诉字典如何比较键。 StringComparer.InvariantCultureIgnoreCase提供了一个IEqualityComparer实例,该实例以不区分大小写的方式比较字符串。 回答2 var myDic = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase); myDic.Add("HeLlo", "hi"); if (myDic.ContainsKey("hello")) Console.WriteLine(myDic["hello"]); 回答3

2021-04-04 11:57:10    分类:技术分享    c#   collections   generic-collections

如何使Array.indexOf()不区分大小写?(How do I make Array.indexOf() case insensitive?)
问题 我正在为一个网站编写一段代码,该网站将在数组中包含一个名称列表,并选择一个随机名称,我想添加一个功能,该功能使用户可以在数组中添加或删除名称。 我具有所有这些功能,但是删除名称时,用户必须键入名称以匹配数组中的Case。 我试图使它不区分大小写,我在做什么错呢? <html> <!--Other code uneeded for this question--> <p id="canidates"></p> <body> <input type="text" id="delname" /><button onclick="delName()">Remove Name from List</button> <script> //Array of names var names = []; //Other code uneeded for this question //List of Canidates document.getElementById('canidates').innerHTML = "<strong>List of Canidates:</strong> " + names.join(" | "); //Other code uneeded for this question //Remove name from Array function delName(

2021-05-31 12:20:41    分类:技术分享    javascript

Is there any way to make a UNIQUE index case insensitive in Mysql 5.1.x ?
If so - What must change in this table ? CREATE TABLE contestants ( idContestants int(10) unsigned NOT NULL AUTO_INCREMENT, idEvent int(10) unsigned NOT NULL, ContestantName varchar(50) DEFAULT NULL, PRIMARY KEY (idContestants), UNIQUE KEY Index_UniqueName (idEvent,ContestantName), ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

2021-04-27 03:15:13    分类:问答    mysql   unique-index

How to make a case-insensitive unique column in SQLite
I haven't been able to find the answer to this. I'm trying to create a table with a unique email address column. And when I do CREATE TABLE users ( email TEXT PRIMARY KEY, password TEXT NOT NULL CHECK(password<>''), UNIQUE (lower(email)) ) when using PDO, I get the error: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1 near "(": syntax error' in script.php:65 Stack trace: #0 script.php(65): PDO->exec('CREATE TABLE us...') #1 {main} thrown in script.php on line 65 Line 65 is the CREATE TABLE line. If I take out the UNIQUE, it works fine. Is there a

2021-05-02 08:26:58    分类:问答    sqlite   pdo

PHP不区分大小写的单词替换(PHP Case Insensitive Word Replacement)
问题 好的,我正在尝试在正在制作的此搜索脚本中将搜索词加粗,除非我无法使其不区分大小写。 function highlight($term,$target){ $terms = explode(" ", $term); foreach($terms as $term){ $result = (eregi_replace($term, "<strong>$term</strong>", $target)); } return $result; } 那就是我到目前为止所拥有的功能。在PHP.net上说eregi_replace是不区分大小写的匹配,但是由于某种原因,它显然不起作用。 (我是菜鸟)。 有任何想法吗? :D 回答1 从PHP 5.3开始不推荐使用ereg_* _ ereg_* (POSIX正则表达式)函数,并且很长时间以来都不建议使用。 最好使用PCRE( preg_* )函数(例如preg_replace)。 为此,您可以创建一个不区分大小写的正则表达式,然后将匹配项包装在<strong>标记中: function highlight($term, $target) { $terms = array_unique(explode(" ", $term)); // we only want to replace each term once foreach ($terms

2021-06-01 16:00:17    分类:技术分享    php

违反完整性约束:1062 utf8_unicode_ci 整理的重复条目(Integrity constraint violation: 1062 Duplicate entry for utf8_unicode_ci collation)
问题 我有一个名为 tag 的表,在 name 列上有一个唯一约束: CREATE TABLE `tag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `UNIQ_389B7835E237E06` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=13963 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 此表的排序规则是 utf8_unicode_ci。 当我尝试插入以下 2 个条目时,我收到“违反完整性约束”的执行。 SQL日志: 130607 14:35:53 1096 Connect imtpdb@localhost on imtpdb 1096 Query SET NAMES utf8 1096 Query START TRANSACTION 1096 Query INSERT INTO tag (name) VALUES ('até') 1096 Query INSERT INTO tag (name) VALUES ('ate') 1096 Query rollback 1096 Quit

2021-06-10 08:07:42    分类:技术分享    php   mysql   utf-8   doctrine-orm

Case-INsensitive Dictionary with string key-type in C#
If I have a Dictionary<String,...> is it possible to make methods like ContainsKey case-insensitive? This seemed related, but I didn't understand it properly: c# Dictionary: making the Key case-insensitive through declarations

2021-03-30 15:32:14    分类:问答    c#   collections   generic-collections

Django中的唯一模型字段和区分大小写(postgres)(Unique model field in Django and case sensitivity (postgres))
问题 考虑以下情况:- 假设我的应用允许用户在其国家中创建州/省。 为了清楚起见,我们在这里仅考虑ASCII字符。 在美国,用户可以创建一个名为“德克萨斯州”的州。 如果该应用程序在内部使用,可以说用户不在意它是否拼写为“ texas”或“ Texas”或“ teXas” 但重要的是,如果数据库中已存在“德州”,则系统应阻止创建“德州”。 如果模型如下所示: class State(models.Model): name = models.CharField(max_length=50, unique=True) 在postgres中,唯一性将区分大小写; 也就是说,postgres将允许用户创建“德克萨斯州”和“德克萨斯州”,因为它们被认为是唯一的。 在这种情况下可以采取什么措施来防止这种行为。 如何使用Django和Postgres提供不区分大小写的唯一性 现在,我正在执行以下操作以防止创建不区分大小写的重复项。 class CreateStateForm(forms.ModelForm): def clean_name(self): name = self.cleaned_data['name'] try: State.objects.get(name__iexact=name) except ObjectDoesNotExist: return name raise

2021-04-28 06:48:25    分类:技术分享    django   postgresql   django-models   unique

查询字符串键是否区分大小写?(Are query string keys case sensitive?)
问题 假设我有一个这样的网址: http://www.example.com?key=123&KEY=198 那会是什么结果 request.querystring("key") and request.querystring("KEY") 我有点困惑。 回答1 URI的RFC表示: 6.2.2.1。 案例规范化当URI使用通用语法的组件时,始终会应用组件语法等效规则。 也就是说,方案和主机不区分大小写,因此应规范化为小写。 例如,URI等效于http://www.example.com/。 除非该方案另有明确定义,否则其他通用语法组件均假定为区分大小写的(请参见第6.2.3节)。 请注意,方案(此处为“ http”),主机(服务器名称)不区分大小写,但无论如何都应小写。 其余的区分大小写,除非您使用不同的方案明确表明它应该不区分大小写。 因此,根据规范,在所有基于http的URI中,key和KEY是不同的东西。 编辑:@Nicholas在假设权限定义了它接受的内容方面是部分错误的,这对于定义自己的URI的自定义方案和权限来说是正确的,但是http是每个人都遵循的定义明确的规范(或者您可以使用http查询例如,用竖线字符作为分隔符。想象一下那里的混乱!) HTTP的RFC规范说: 方案和主机不区分大小写,通常以小写形式提供; 所有其他组件都以区分大小写的方式进行比较。 除“保留

2021-05-31 12:16:25    分类:技术分享    http   url   uri   query-string   request.querystring

不区分大小写的字典搜索? [复制](Case insensitive dictionary search? [duplicate])
问题 这个问题在这里已经有了答案: 不区分大小写的字典(10 个回答) 3年前关闭。 我可以使用 map 用 Python 实现不区分大小写的列表搜索。 a = ['xyz', 'wMa', 'Pma']; b = map(string.lower, a) if 'Xyz'.lower() in b: print 'yes' 我怎样才能用字典做同样的事情? 我尝试了以下代码,但 ap 具有 ['a','b','c'] 列表,而不是不区分大小写的字典。 a = {'a':1, 'B':2, 'c':3} ap = map(string.lower, a) 回答1 请注意,使字典不区分大小写,无论如何都可能会丢失信息:例如,您将如何“不区分大小写” {'a': 23, 'A': 45} ?! 如果你只关心一个键在字典中的位置(即,不关心它对应的值是什么),那么创建一个set ——即 theset = set(k.lower() for k in thedict) (在 Python 的每个版本中,或者{k.lower() for k in thedict}如果你对你的代码只在 Python 2.7 或更高版本中工作感到满意,为了一些纯粹的装饰性语法糖;-),并检查if k.lower() in theset: ... 。 或者,您可以创建一个包装类,例如,可能是只读的...:

2021-06-22 21:20:10    分类:技术分享    python   dictionary

可延迟,不区分大小写的唯一约束(Deferrable, case-insensitive unique constraint)
问题 在PostgreSQL中是否可以在字符列上创建可延迟的唯一约束,但不区分大小写? 让我们假设下面的基本表: CREATE TABLE sample_table ( my_column VARCHAR(100) ); 如果不需要可延迟的约束,则就像使用函数创建唯一索引一样简单,例如: CREATE UNIQUE INDEX my_unique_index ON sample_table(UPPER(my_column)); 延迟约束检查需要显式创建约束,例如: ALTER TABLE sample_table ADD CONSTRAINT my_unique_constraint UNIQUE(my_column) DEFERRABLE INITIALLY IMMEDIATE; 不幸的是,不可能在唯一约束中使用任意函数。 一种可能的解决方法是创建与my_column内容相同的其他列,但大写形式在每次更新/插入后通过触发器进行更新,然后在此人工列上创建可延迟的唯一约束。 但是,这听起来确实很丑陋。 或者,应该可以使用CREATE CONSTRAINT TRIGGER并手动检查不区分大小写的唯一性(当然,仍然需要常规索引)。 对于这样一个简单的需求(我想很受欢迎),这听起来有些复杂。 有没有更简单和/或更优雅的方法来解决此限制? 回答1

2021-04-27 10:00:57    分类:技术分享    postgresql   constraints   database-indexes

发电机数据库中不区分大小写的查询(case insensitive query in dynamo DB)
问题 我想扫描/查询 dynamo DB 表。 Dynamo DB 区分大小写。 我有时想使用 Hash/Range 键作为字符串。 有什么方法可以在 dynamo DB 级别启用不区分大小写? 或者是否存在其他解决方案? 我正在使用 JAVA SDK 查询 Dynamo 回答1 我能想到两种可能的方法 1)通过调整架构在应用程序端解决 例如,假设您现在将“名称”作为散列键,每当添加新用户时,您在将他们的名字设为小写后添加他们 John --> john Doe --> doe 请记住同时存储值( name作为哈希用于搜索)和(用于显示目的的displayName ) 现在在查询数据库之前,您可以将搜索转换为小写。 2) 使用 ElasticSearch: DyanmoDB 表可以与 ElasticSearch 集成,ElasticSearch 可以对您的表执行不同的搜索操作(参考链接) 回答2 正如其他答案所提到的,ElasticSearch 似乎是一个不错的选择。 但是当我遇到类似的情况时,我是这样解决的。 我创建了一个仅用于搜索的新属性。 我将要搜索的值以小写形式存储在此属性中,并通过使用“CONTAINS”运算符进行查询来进行搜索。 例如。 如果我有一个项目如下: id: 1 username: 'fsmith' first_name: 'Franco' last_name

2021-06-23 12:14:07    分类:技术分享    java   amazon-dynamodb

Deferrable, case-insensitive unique constraint
Is it possible in PostgreSQL to create a deferrable unique constraint on a character column, but case-insensitive? Let's assume the following basic table: CREATE TABLE sample_table ( my_column VARCHAR(100) ); If deferrable constraint is not needed, it is as simple as creating unique index with function, e.g.: CREATE UNIQUE INDEX my_unique_index ON sample_table(UPPER(my_column)); Deferred constraint check requires creating the constraint explicitly, e.g.: ALTER TABLE sample_table ADD CONSTRAINT my_unique_constraint UNIQUE(my_column) DEFERRABLE INITIALLY IMMEDIATE; And unfortunately it is not

2021-04-16 01:48:28    分类:问答    postgresql   constraints   database-indexes

数据库不区分大小写索引?(Database Case Insensitive Index?)
问题 我有一个查询,我正在搜索一个字符串: SELECT county FROM city WHERE UPPER(name) = 'SAN FRANCISCO'; 现在,这工作正常,但不能很好地扩展,我需要对其进行优化。 我已经找到了一个创建生成视图的选项,或者类似的东西,但我希望有一个使用索引的更简单的解决方案。 我们正在使用 DB2,我真的想在索引中使用一个表达式,但是这个选项似乎只在 z/OS 上可用,但是我们运行的是 Linux。 无论如何,我尝试了表达式索引: CREATE INDEX city_upper_name_idx ON city UPPER(name) ALLOW REVERSE SCANS; 但当然,它会在 UPPER(名称)上窒息。 有没有另一种方法可以以这种方式创建索引或类似的东西,这样我就不必重组现有查询以使用新生成的视图,或更改现有列,或任何其他此类侵入性更改? 编辑:我愿意听取其他数据库的解决方案......它可能会延续到 DB2...... 回答1 您可以添加一个索引列,其中包含城市名称的数字哈希键。 (允许重复)。 然后你可以做一个多条款,其中: hash = [compute hash key for 'SAN FRANCISCO'] SELECT county FROM city WHERE cityHash = hash AND

2021-06-04 15:13:00    分类:技术分享    sql   database   oracle   indexing   db2

PHP不区分大小写的in_array函数(PHP case-insensitive in_array function)
问题 使用in_array函数时是否可以进行不区分大小写的比较? 因此,使用这样的源数组: $a= array( 'one', 'two', 'three', 'four' ); 以下查找将全部返回true: in_array('one', $a); in_array('two', $a); in_array('ONE', $a); in_array('fOUr', $a); 哪些功能或一组功能会做同样的事情? 我不认为in_array本身可以做到这一点。 回答1 您可以使用preg_grep(): $a= array( 'one', 'two', 'three', 'four' ); print_r( preg_grep( "/ONe/i" , $a ) ); 回答2 显而易见的事情是将搜索词转换为小写: if (in_array(strtolower($word), $array)) { ... 当然,如果数组中有大写字母,则需要先执行以下操作: $search_array = array_map('strtolower', $array); 并搜索。 每次搜索都对整个数组执行strtolower毫无意义。 但是搜索数组是线性的。 如果你有一个大的数组或你打算这样做了很多,这将是更好地把搜索条件在阵列的关键,因为这将是更快的访问: $search_array = array

2021-04-09 23:04:26    分类:技术分享    php   arrays

Case insensitive unique model fields in Django?
I have basically a username is unique (case insensitive), but the case matters when displaying as provided by the user. I have the following requirements: field is CharField compatible field is unique, but case insensitive field needs to be searchable ignoring case (avoid using iexact, easily forgotten) field is stored with case intact preferably enforced on database level preferably avoid storing an extra field Is this possible in Django? The only solution I came up with is "somehow" override the Model manager, use an extra field, or always use 'iexact' in searches. I'm on Django 1.3 and

2021-03-30 16:59:30    分类:问答    python   django   postgresql   model

Mongoose schema: Validating unique field, case insensitive
I have a userSchema like so: var userSchema = new Schema({ name: { type: String , required: true , validate: [validators.notEmpty, 'Name is empty'] } , username: { type: String , required: true , unique: true , validate: [validators.notEmpty, 'Username is empty'] } }); The username field is supposed to be unique. Mongoose will throw an error if this username already exists in the database. However, it is not case insensitive, which I need it to be. Am I right in thinking that the only way to achieve a case insensitive unique check is to write my own validation rule, which will perform a query

2021-05-17 20:18:13    分类:问答    node.js   validation   mongodb   express   mongoose

Can I make mysql table columns case insensitive?
I am new to mysql (and sql in general) and am trying to see if I can make data inserted into a column in a table case insensitive. I am storing data like state names, city names, etc. So I want to have a unique constraint on these types of data and on top of that make them case insensitive so that I can rely on the uniqueness constraint. Does mysql support a case-insensitive option on either the column during table creation or alternatively when setting the uniqueness constraint on the column? What is the usual way to deal with such issues? I would appreciate any alternate ideas/suggestions to

2021-06-09 15:54:48    分类:问答    mysql

Mongo唯一索引不区分大小写(Mongo unique index case insensitive)
问题 @CompoundIndexes({ @CompoundIndex(name = "fertilizer_idx", unique = true, def = "{'name': 1, 'formula': 1, 'type': 1}") }) public class Fertilizer extends Element implements Serializable { //class stuff } 是否可以创建不区分大小写的索引? 现在,它已从NAME NAMe 。 保存第二个字段的小写(或大写)对我来说是不可能的。 谢谢,佩德罗 回答1 在MongoDB 3.4版之前,我们无法创建不区分大小写的索引。 在版本3.4中,具有collation选项,该选项允许用户为字符串比较指定特定于语言的规则,例如字母大写和重音符号的规则。 排序规则选项具有以下语法: collation: { locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } 语言环境字段是强制性的; 所有其他字段都是可选的。

2021-05-08 19:00:03    分类:技术分享    mongodb   spring-data-mongodb   mongodb-indexes

您能否在 Sqlite3(使用 Django)中实现不区分大小写的“唯一”约束?(Can you achieve a case insensitive 'unique' constraint in Sqlite3 (with Django)?)
问题 因此,假设我使用的是 Python 2.5 的内置默认 sqlite3,并且我有一个带有以下代码的 Django 模型类: class SomeEntity(models.Model): some_field = models.CharField(max_length=50, db_index=True, unique=True) 我已经设置了管理界面,除了我可以创建两个 SomeEntity 记录外,一切似乎都运行良好,一个是 some_field='some value',一个是 some_field='Some Value',因为 some_field 的唯一约束似乎是区分大小写。 在检查唯一性时,是否有某种方法可以强制 sqlite在敏感比较中执行大小写? 我似乎无法在 Django 的文档中找到一个选项,我想知道是否可以直接对 sqlite 做一些事情来让它按照我想要的方式运行。 :-) 回答1 是的,这可以通过使用以下命令向表添加唯一索引来轻松完成: 在 mytable 上创建唯一索引 uidxName (myfield COLLATE NOCASE) 如果您需要对非 ASCII 字母不区分大小写,您将需要使用类似于以下的命令注册您自己的 COLLATION: 以下示例显示了一个以“错误方式”排序的自定义排序规则: import sqlite3 def

2021-06-21 09:54:50    分类:技术分享    python   django   sqlite   django-models

undefined method `save' making test fail before testing to the end
I am following ruby.railstutorial.org. I have had some troubles, but I solved them. Now, however, I am googling for quite some time, checked the code, I even have an idea why test fails, but have no clue as to how to make it pass. So, here's the problem. I have a User model: class User < ActiveRecord::Base attr_accessible :email, :name validates :name, presence: true, length: {maximum: 50 } VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } end The problem is related to the case

2021-05-14 06:37:11    分类:问答    ruby-on-rails   rspec   railstutorial.org

不区分大小写的字典(Case insensitive dictionary)
问题 我希望我的字典不区分大小写。 我有以下示例代码: text = "practice changing the color" words = {'color': 'colour', 'practice': 'practise'} def replace(words,text): keys = words.keys() for i in keys: text= text.replace(i ,words[i]) return text text = replace(words,text) print text 输出=练习更改颜色 我想要另一个字符串, "practice changing the Color" ,(其中Color以大写Color开头)也要提供相同的输出。 我相信有一种通用的方法可以使用mydictionary[key.lower()]转换为小写字母,但是我不确定如何将其最好地集成到我的现有代码中。 (如果无论如何这将是一种合理,简单的方法)。 回答1 如果我对您的理解正确,并且希望以一种不区分大小写的方式键入字典的键,则一种方法是将dict子类化并重载setter / getter: class CaseInsensitiveDict(dict): def __setitem__(self, key, value): super

2021-04-07 13:50:09    分类:技术分享    python

如何使我的postgresql数据库使用不区分大小写的排序规则?(How to make my postgresql database use a case insensitive collation?)
问题 在几个SO帖子中,OP要求以一种不区分大小写的方式搜索文本列的有效方法。 据我所知,最有效的方法是拥有一个不区分大小写的排序规则的数据库。 就我而言,我是从头开始创建数据库的,所以我对DB排序规则具有完美的控制。 唯一的问题是我不知道如何定义它,也找不到任何示例。 请告诉我如何创建不区分大小写的排序规则的数据库。 我正在使用PostgreSQL 9.2.4。 编辑1 CITEXT扩展是一个很好的解决方案。 但是,它有一些限制,如文档中所述。 如果没有更好的方法,我一定会使用它。 我要强调的是,我希望所有字符串操作均不区分大小写。 对每个TEXT字段使用CITEXT是一种方法。 但是,如果可能的话,最好使用不区分大小写的排序规则。 现在,https://stackoverflow.com/users/562459/mike-sherrill-catcall表示PostgreSQL使用底层系统公开的任何排序规则。 我不介意使操作系统公开不区分大小写的排序规则。 唯一的问题我不知道该怎么做。 回答1 自从这个问题以来,发生了很多变化。 PostgreSQL v12中增加了对不区分大小写排序规则的本机支持。 如其他答案中所述,这基本上不赞成citext扩展名。 在PostgreSQL v12中,可以执行以下操作: CREATE COLLATION case_insensitive (

2021-04-28 11:28:30    分类:技术分享    postgresql

Can you achieve a case insensitive 'unique' constraint in Sqlite3 (with Django)?
So let's say I'm using Python 2.5's built-in default sqlite3 and I have a Django model class with the following code: class SomeEntity(models.Model): some_field = models.CharField(max_length=50, db_index=True, unique=True) I've got the admin interface setup and everything appears to be working fine except that I can create two SomeEntity records, one with some_field='some value' and one with some_field='Some Value' because the unique constraint on some_field appears to be case sensitive. Is there some way to force sqlite to perform a case insensitive comparison when checking for uniqueness? I

2021-05-26 01:38:46    分类:问答    python   django   sqlite   django-models

Mongoose 模式:验证唯一字段,不区分大小写(Mongoose schema: Validating unique field, case insensitive)
问题 我有一个像这样的userSchema : var userSchema = new Schema({ name: { type: String , required: true , validate: [validators.notEmpty, 'Name is empty'] } , username: { type: String , required: true , unique: true , validate: [validators.notEmpty, 'Username is empty'] } }); username段应该是唯一的。 如果此用户名已存在于数据库中,Mongoose 将抛出错误。 但是,它不是不区分大小写的,我需要它。 我是否认为实现不区分大小写的唯一检查的唯一方法是编写自己的验证规则,该规则将对集合执行查询? 像这样编写验证检查,创建与集合的更多连接是否可以? 我也需要为email做类似的事情。 回答1 怎么用: { type: String, lowercase: true, trim: true } 达到你的目的? 回答2 索引上具有strength: 2的整理strength: 2解决了这个问题。 index: { unique: true, collation: { locale: 'en', strength: 2 } }

2021-06-09 11:10:44    分类:技术分享    node.js   validation   mongodb   express   mongoose

Case-insensitive unique index in Rails/ActiveRecord?
I need to create a case-insensitive index on a column in rails. I did this via SQL: execute( "CREATE UNIQUE INDEX index_users_on_lower_email_index ON users (lower(email))" ) This works great, but in my schema.rb file I have: add_index "users", [nil], :name => "index_users_on_lower_email_index", :unique => true Notice the "nil". So when I try to clone the database to run a test, I get an obvious error. Am I doing something wrong here? Is there some other convention that I should be using inside rails? Thanks for the help.

2021-04-09 04:24:43    分类:问答    ruby-on-rails   activerecord

case-insensitive array_unique
I'm trying to write a few lines of code to make a case insensitive array unique type function. Here's what I have so far: foreach ($topics as $value) { $lvalue = strtolower($value); $uvalue = strtolower($value); if (in_array($value, $topics) == FALSE || in_array($lvalue, $topics) == FALSE || in_array($uvalue, $topics) == FALSE) { array_push($utopics, $value); } } The trouble is the if statement. I think there's something wrong with my syntax, but I'm relatively new to PHP and I'm not sure what it is. Any help?

2021-03-31 06:47:21    分类:问答    php   arrays   loops   foreach

Mongo unique index case insensitive
@CompoundIndexes({ @CompoundIndex(name = "fertilizer_idx", unique = true, def = "{'name': 1, 'formula': 1, 'type': 1}") }) public class Fertilizer extends Element implements Serializable { //class stuff } Is it possible to create the index case insensitive? Right now it is differentiating from NAME to NAMe. Saving a second field lowercase (or uppercase) is not a possibility for me. Thanks, Pedro

2021-04-10 14:01:39    分类:问答    mongodb   spring-data-mongodb   mongodb-indexes

sqlite3 on rails: create_table using collate nocase
Using rails 4.2.0 with ruby v2.3.0p0 I want to create indexes that are case insensitive since most of my searches are case insensitive and I don't want to have to do a full table search every time. So in my create_table migrations, I try adding lines such as: add_index :events, :name, :COLLATE => :NOCASE And when I migrate I get: == 20150515163641 CreateEvents: migrating ===================================== -- create_table(:events) -> 0.0018s -- add_index(:events, :submitter, {:COLLATE=>:NOCASE}) rake aborted! StandardError: An error has occurred, this and all later migrations canceled

2021-05-12 13:52:41    分类:问答    ruby-on-rails   ruby   ruby-on-rails-4   sqlite   collate

在 Python 中对字符串列表进行排序 [重复](Sorting a list of strings in Python [duplicate])
问题 这个问题在这里已经有了答案: 8 年前关闭。 可能的重复: 如何在 Python 中对字符串列表进行排序? 如何在 Python 中按字母顺序对 unicode 字符串进行排序? 我有一个字符串list并希望按字母顺序对其进行排序。 当我调用list.sort()时,列表的第一部分包含按字母顺序排序的以大写字母开头的条目,第二部分包含以小写字母开头的排序条目。 像这样: Airplane Boat Car Dog apple bicycle cow doctor 我用谷歌搜索了答案,但没有找到可行的算法。 我阅读了locale模块以及sort参数cmp和key 。 通常这个lambda与sort连在一起,这让我无法更好地理解事情。 我如何获得: list = ['Dog', 'bicycle', 'cow', 'doctor', 'Car', 'Boat', 'apple', 'Airplane'] 至: Airplane apple bicycle Boat Car cow doctor Dog 应考虑外语字符(如ä、é、î)。 回答1 使用不区分大小写的比较: >>> sorted(['Dog', 'bicycle', 'cow', 'doctor', 'Car', 'Boat', 'apple', 'Airplane'], key=str.lower) [

2021-06-03 15:36:37    分类:技术分享    python   string   sorting

REST API是区分大小写还是不区分大小写?(Should a REST API be case sensitive or non case sensitive?)
问题 在工作中,我们遇到了区分大小写的REST api的问题,该api忽略了拼写错误的参数而没有返回任何错误。 我认为这很糟糕。 然后是一个普遍的问题: REST API是区分大小写还是不区分大小写? 每种方法的优点和缺点是什么? 回答1 正如其他人回答的那样,构成API的URL的HTTP部分区分大小写。 这遵循UNIX约定,在UNIX约定中,URI路径映射到文件系统路径,并且文件系统路径区分大小写。 另一方面,Windows遵循使路径不区分大小写的约定。 但是,在Unix中,不好的做法是只有两条路径的大小写不同。 此外,可以预期路径是小写的。 因此:我们不要违反约定。 https://example.org/api/v1/products 和 https://example.org/api/v1/产品 永远不要胡说八道。 此外, products应优先于Products 。 无论是Products应该返回一个404,一个301 products或简单地是一个别名products是一个风格问题-这是你的选择,但要保持一致。 堆栈溢出API通常是小写且不区分大小写。 我认为这使客户的生活变得最轻松,同时拥有明确的默认设置,并且对于大多数用户而言并不奇怪。 毕竟,您能想到一个诚实地从区分大小写和姓名重叠中受益的客户吗? 回答2 HTTP URL对于方案和主机部分不区分大小写,而对于路径

2021-04-29 21:00:48    分类:技术分享    rest   asp.net-web-api

Best solution to remove duplicate values from case-insensitive array [duplicate]
This question already has answers here: case-insensitive array_unique (4 answers) Closed 1 year ago. I found a few solutions but I can't decide which one to use. What is the most compact and effective solution to use php's array_unique() function on a case-insensitive array? Example: $input = array('green', 'Green', 'blue', 'yellow', 'blue'); $result = array_unique($input); print_r($result); Result: Array ( [0] => green [1] => Green [2] => blue [3] => yellow ) How do we remove the duplicate green? As far as which one to remove, we assume that duplicates with uppercase characters are correct. e

2021-05-02 04:29:13    分类:问答    php   arrays   function   array-unique

未定义的方法“保存”使测试在测试结束之前失败(undefined method `save' making test fail before testing to the end)
问题 我正在关注 ruby​​.railstutorial.org。 我遇到了一些麻烦,但我解决了它们。 但是,现在我在谷歌上搜索了很长时间,检查了代码,我什至知道测试失败的原因,但不知道如何使其通过。 所以,问题来了。 我有一个用户模型: class User < ActiveRecord::Base attr_accessible :email, :name validates :name, presence: true, length: {maximum: 50 } VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } end 该问题与不区分大小写的唯一性检查有关。 Rspec 中的测试是: before { @user = User.new(name: "Example User", email: "user@example.com") } subject { @user } describe "when email address is already in use" do before do

2021-06-10 05:33:11    分类:技术分享    ruby-on-rails   rspec   railstutorial.org

多列不区分大小写的组(Case insensitive group on multiple columns)
问题 无论如何,有没有要做LINQ2SQL查询的事情呢? var result = source.GroupBy(a => new { a.Column1, a.Column2 }); 或者 var result = from s in source group s by new { s.Column1, s.Column2 } into c select new { Column1 = c.Key.Column1, Column2 = c.Key.Column2 }; 但是忽略分组列内容的大小写? 回答1 您可以将StringComparer.InvariantCultureIgnoreCase传递给GroupBy扩展方法。 var result = source.GroupBy(a => new { a.Column1, a.Column2 }, StringComparer.InvariantCultureIgnoreCase); 或者,您可以按照Hamlet Hakobyan在评论中建议的在每个字段上使用ToUpperInvariant 。 我建议使用ToUpperInvariant或ToUpper而不是ToLower或ToLowerInvariant因为它已针对编程比较目的进行了优化。 回答2 我无法使用NaveenBhat的解决方案,出现了编译错误:

2021-05-18 10:36:30    分类:技术分享    c#   linq   linq-to-sql

URL是否应区分大小写?(Should URL be case sensitive?)
问题 我注意到 HTTP://STACKOVERFLOW.COM/QUESTIONS/ASK 和 http://stackoverflow.com/questions/ask 两者都可以正常工作-实际上前一个被转换为小写。 我认为这对用户有意义。 如果我查看Google,那么此URL可以正常工作: http://www.google.com/intl/en/about/corporate/index.html 但是这个带有“ ABOUT”的按钮不起作用: http://www.google.com/intl/en/ABOUT/corporate/index.html URL是否应区分大小写? 回答1 根据W3的“ HTML和URL”,他们应该: 可能存在URL或部分URL,大小写无关紧要,但是识别这些URL可能并不容易。 用户应始终认为URL区分大小写。 回答2 所有“不敏感的”均以粗体显示,以提高可读性。 根据RFC 4343,域名不区分大小写。其余URL通过GET方法发送到服务器。 这是否区分大小写。 以此页面为例,stackoverflow.com接收GET字符串/ questions / 7996919 / should-url-区分大小写,将HTML文档发送到您的浏览器。 Stackoverflow.com不区分大小写,因为它对/ QUEStions / 7996919

2021-04-04 08:17:32    分类:技术分享    url   case-sensitive

有没有一种方法可以使用mysql命令行实用程序列出mysql中的所有保留字(is there a way to list all the reserved words in mysql using the mysql command-line utility)
问题 有没有一种方法可以使用命令行实用程序(mysql)列出MySQL(5.x)中的所有保留字? 回答1 MySQL(5.x)中有一个mysql模式 您可以查询: SELECT * FROM mysql.help_keyword; 回答2 这是一个完整的列表,多达5.6 ... DROP TABLE IF EXISTS reserved_words; CREATE TABLE reserved_words (keyword VARCHAR(30) NOT NULL PRIMARY KEY); INSERT INTO reserved_words VALUES ("ACCESSIBLE"), ("ADD"), ("ALL"), ("ALTER"), ("ANALYZE"), ("AND"), ("AS"), ("ASC"), ("ASENSITIVE"), ("BEFORE"), ("BETWEEN"), ("BIGINT"), ("BINARY"), ("BLOB"), ("BOTH"), ("BY"), ("CALL"), ("CASCADE"), ("CASE"), ("CHANGE"), ("CHAR"), ("CHARACTER"), ("CHECK"), ("COLLATE"), ("COLUMN"), ("CONDITION"), ("CONSTRAINT"), (

2021-05-18 03:25:25    分类:技术分享    mysql

区分大小写的SQL Server 2008唯一列(SQL Server 2008 Unique Column that is Case Sensitive)
问题 有没有办法使一列既唯一又区分大小写? 我希望能够放 abcde和ABCDE 在唯一列中。 回答1 可以通过唯一约束来强制唯一性。 唯一索引是否区分大小写由服务器(或表的)排序规则定义。 您可以通过以下查询获取数据库的当前排序规则: SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation') SQLCollation; 并且您应该获得类似以下内容的信息: SQLCollation ———————————— SQL_Latin1_General_CP1_CI_AS 此处,整理末尾的“ CI_AS”表示:CI =不区分大小写,AS =区分重音。 可以将其更改为您需要的任何形式。 如果您的数据库和/或表确实具有区分大小写的排序规则,则我希望索引的唯一性也区分大小写,例如,您的abcdef和ABCDEF都应被视为唯一字符串。 马克 更新: 我刚刚尝试了此操作(SQL Server 2008 Developer Edition x64)-对我有用(我的数据库通常使用“ Latin1_General_CI_AS归类,但我甚至可以为每个表/每个VARCHAR列定义另一个)” CREATE TABLE TestUnique (string VARCHAR(50) COLLATE SQL_Latin1_General_Cp1_CS_AS)

2021-05-18 05:43:14    分类:技术分享    sql   sql-server   tsql   sql-server-2008

4.5、定制化security的数据库
定制化security的数据库 一、使用H2内嵌数据库1.1、添加依赖1.2、添加依赖1.3、配置使用基于H2的内存数据库1.4、二次启动项目出现报错问题(未整理完善) 二、定制化数据库2.1、schema.sql(在引入jpa后未使用,jpa可自动根据data.sql创建表结构)2.2、data.sql2.3、User2.4、Role2.5、UserRepo2.6、RoleRepo2.7、application.yml 三、定制化登录逻辑3.1、实现UserDetailsService接口3.2、配置3.3、测试 四、实现登录后的密码升级4.1、配置密码转换器4.2、实现UserDetailsPasswordService4.3、测试 一、使用H2内嵌数据库 1.1、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> 1.2、添加依赖 spring

2021-03-30 04:28:28    分类:博客    

Rails模型中不区分大小写的搜索(Case-insensitive search in Rails model)
问题 我的产品型号包含一些物品 Product.first => #<Product id: 10, name: "Blue jeans" > 我现在要从另一个数据集中导入一些产品参数,但是名称的拼写不一致。 例如,在另一个数据集中,“ Blue jeans可以拼写为“ Blue Jeans 。 我想要Product.find_or_create_by_name("Blue Jeans") ,但这将创建一个新产品,几乎与第一个相同。 如果我想查找和比较小写的名字,该怎么办? 性能问题在这里并不是真正重要的:只有100-200种产品,我想将其作为导入数据的迁移来运行。 有任何想法吗? 回答1 您可能需要在这里更加详细 name = "Blue Jeans" model = Product.where('lower(name) = ?', name.downcase).first model ||= Product.create(:name => name) 回答2 这是Rails中的完整设置,仅供我参考。 如果它也对您有帮助,我感到很高兴。 查询: Product.where("lower(name) = ?", name.downcase).first 验证者: validates :name, presence: true, uniqueness: {case_sensitive

2021-03-29 00:33:18    分类:技术分享    ruby-on-rails   activerecord   case-insensitive

Django:身份验证用户名与用户名不区分大小写吗?(Django : Case insensitive matching of username from auth user?)
问题 Django默认情况下将用户名区分大小写,现在为了进行身份验证,我编写了自己的Authentication Backend以在身份验证时处理不区分大小写的用户名。 如所示:http://blog.shopfiber.com/?p=220 现在,问题是: 我有各种视图和util方法,它们将username与某些情况进行了比较。 IE request.user.username == username_from_some_other_system_as_str 现在,如果用户名是yugal则: request.user.username == 'Yugal' # Returns False 现在,它应该返回True [我想要实现的目标] 为此,我记得C++时代的《 Operator Overloading 。 但是我不认为仅对django的auth user执行此auth user是一个好主意,因为auth user与django紧密相关。 同样,重载==会使整个类(不只是username段)不区分大小写。 因此,即使进行整体比较,我也应该如何处理此username不区分大小写。 笔记: 始终无法创建一个返回小写用户名的get_username方法,因为它将需要重构所有代码才能使用它。 您可以一次为您的代码执行此操作,但是如果您使用的是第三方django应用程序,则无法执行此操作

2021-04-23 10:13:53    分类:技术分享    python   django   operator-overloading

Cookie的名称是否区分大小写?(Is the name of a cookie case sensitive?)
问题 HTTP Cookie由名称/值对组成,可以由服务器使用以下响应进行设置: HTTP/1.0 200 OK Content-type: text/html Set-Cookie: name=value Set-Cookie: name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT 来自客户端的将来请求将如下所示: GET /spec.html HTTP/1.1 Host: www.example.org Cookie: name=value; name2=value2 cookie的名称是否区分大小写? 例如,如果我的服务器发送这样的响应: HTTP/1.0 200 OK Content-type: text/html Set-Cookie: Aaaa=Bbbb Set-Cookie: aAaa=bBbb Set-Cookie: aaAa=bbBb Set-Cookie: aaaA=bbbB 期望客户端(Chrome,FireFox,Safari,IExplorer,Opera等)发送带有标头Cookie: Aaaa=Bbbb; aAaa=bBbb; aaAa=bbBb; aaaA=bbbB;将来请求是否合理Cookie: Aaaa=Bbbb; aAaa=bBbb; aaAa=bbBb; aaaA=bbbB; Cookie

2021-04-20 22:27:51    分类:技术分享    http   cookies   cross-browser   standards

从PowerShell数组中删除重复的值(Removing duplicate values from a PowerShell array)
问题 如何从PowerShell阵列中删除重复项? $a = @(1,2,3,4,5,5,6,7,8,9,0,0) 回答1 通过-Unique开关使用Select-Object(别名为select选择对象); 例如: $a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | select -Unique 回答2 另一个选择是将Sort-Object(别名为sort ,但仅在Windows上)与 -Unique开关,将分类与删除重复项结合在一起: $a | sort -unique 回答3 如果您想完全防弹,这是我的建议: @('Apples', 'Apples ', 'APPLES', 'Banana') | Sort-Object -Property @{Expression={$_.Trim()}} -Unique 输出: Apples Banana 这将使用Property参数首先对字符串进行Trim() ,因此将删除多余的空格,然后仅选择-Unique值。 有关Sort-Object更多信息: Get-Help Sort-Object -ShowWindow 回答4 $a | sort -unique 这适用于不区分大小写的项目,因此可以删除大小写不同的重复字符串。 解决了我的问题。 $ServerList = @( "FS3", "HQ2",

2021-04-24 02:49:31    分类:技术分享    arrays   powershell

Django的大小写不敏感网址?(Case insensitive urls for Django?)
问题 默认情况下,django的url解算器似乎执行区分大小写的搜索来解析url,并区分'/ Login'和'login'。 我的网址格式如下。 urlpatterns = patterns('', (r'^admin/(.*)', admin.site.root), (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}), (r'^login/$', 'django.contrib.auth.views.login'), (r'^logout/$', do_logout), ) 谁能指导我,如何使Django URL不区分大小写? 回答1 只需将(?i)放在每个r'...'字符串的开头,即: urlpatterns = patterns('', (r'^(?i)admin/(.*)', admin.site.root), (r'^(?i)static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes': True}), (r'^(?i

2021-04-26 11:45:05    分类:技术分享    python   django

How to make my postgresql database use a case insensitive collation?
In several SO posts OP asked for an efficient way to search text columns in a case insensitive manner. As much as I could understand the most efficient way is to have a database with a case insensitive collation. In my case I am creating the database from scratch, so I have the perfect control on the DB collation. The only problem is that I have no idea how to define it and could not find any example of it. Please, show me how to create a database with case insensitive collation. I am using postgresql 9.2.4. EDIT 1 The CITEXT extension is a good solution. However, it has some limitations, as

2021-04-14 14:50:19    分类:问答    postgresql

为什么许多语言区分大小写?(Why are many languages case sensitive?)
问题 为什么许多语言区分大小写? 这仅仅是继承问题吗? C ++区分大小写是因为C是,Java区分大小写是因为C ++等? 还是背后有更务实的理由? 回答1 Unix。 Unix区分大小写,因此开发用于Unix的许多编程语言都是区分大小写的。 计算机不能原谅-大写字符和小写字符不是同一回事,它们是完全不同的。 当处理周期,RAM等昂贵时,人们并不认为强迫编译器和计算机“宽容”是值得的,人们只是想使事情正常进行。 请注意,直到出现像Visual Basic之类的东西时,不区分大小写才真正变得不有用-一旦公司开始投资于使大众编程对他们的底线来说是一件好事的概念(即,微软赚了很多钱, Windows上有更多的程序)语言是否变得更加友好和宽容了。 回答2 我认为您不会比“因为该语言的作者认为这样更好”得到更好的答案。 就我个人而言,我认为他们是对的。 我不希望在同一源文件中的任何地方找到这些行(并引用相同的对象+方法)... SomeObject.SomeMethod(); ... SOMEOBJECT.SOMEMETHOD(); ... someObject.someMethod(); ... sOmEoBjEcT.sOmEmEtHoD(); 我认为没有人会乐于看到这个... 回答3 需要考虑的一件事是英语也区分大小写。 (我怀疑这对大多数自然语言都是正确的,但对于所有人而言可能并非如此

2021-04-19 08:11:45    分类:技术分享    language-design   case-sensitive

CSS中的属性值区分大小写吗?(Are property values in CSS case-sensitive?)
问题 我已经观察到某些CSS属性(例如带引号声明的font-family可能区分大小写,而其他属性则不区分大小写……但是,网络浏览器和“ HTML渲染器”必须如何解释? 在任何CSS上下文(XML,SVG等)和所有其他应用程序中都一样吗? 标准怎么说? 示例: Adobe InDesign导出了font-family:'Optima Bold'和font-family:'optima bold' 。 我可以“规范化为小写”(例如合并类似的类)吗? 笔记 参考文献不完整且存在冲突: sitepoint.com/font-family说“请注意,字体家族名称在某些操作系统上可能区分大小写” ...它对XHTML有效,是否已用HTML5更新? font-family真的是唯一的区分大小写的值吗? CSS和xhtml中的每个Element和attribute,属性都必须使用小写吗? 间接说“ ...对每个属性使用小写...”,答案是不取反。 与此问题/答案进行比较,这里的观点也许可以转化为一些(个人)客观考虑因素: 有一个(客观的!)规范性(CSS2,CSS3,XHTML1或HTML5的W3C规范)的答案吗? “标准font-family唯一名称”不能区分大小写(否则将不再是标准的)...因此,唯一合理的(通过合理的参数)区分大小写的属性是: 2.1。 url(X)处的X值

2021-04-27 20:55:01    分类:技术分享    html   css   properties   case-sensitive

如何在MediaWiki数据库中进行重音和不区分大小写的搜索?(How to do an accent and case-insensitive search in MediaWiki database?)
问题 假设我在Wiki(MediaWiki 1.19.4)中具有以下页面标题: SOMETHIng Sómethìng SomêthÏng SÒmetHínG 如果用户搜索something我希望将所有4页作为结果返回。 目前,我唯一想到的就是该查询(MySQL Percona 5.5.30-30.2): SELECT page_title FROM page WHERE page_title LIKE '%something%' COLLATE utf8_general_ci 仅返回SOMETHIng 。 我必须走正确的路,因为如果我搜索sóméthíng或SÓMÉTHÍNG ,则结果为SOMETHIng 。 如何修改查询,以便获得预期的其他结果? 这里的性能不是很关键,因为page表仅包含约2K行。 这是具有相关位的表定义: CREATE TABLE page ( (...) page_title VARCHAR(255) NOT NULL DEFAULT '' COLLATE latin1_bin, (...) UNIQUE INDEX name_title (page_namespace, page_title), ) 不能修改表定义,因为这是MediaWiki和AFAIK的原始安装,其代码期望以这种方式定义该字段(即,以二进制数据形式存储的unicode)。 回答1

2021-05-18 09:48:40    分类:技术分享    mysql   mediawiki

Can you make just part of a regex case-insensitive?
I've seen lots of examples of making an entire regular expression case-insensitive. What I'm wondering about is having just part of the expression be case-insensitive. For example, let's say I have a string like this: fooFOOfOoFoOBARBARbarbarbAr What if I want to match all occurrences of "foo" regardless of case but I only want to match the upper-case "BAR"s? The ideal solution would be something that works across regex flavors but I'm interested in hearing language-specific ones as well (Thanks Espo) Edit The link Espo provided was very helpful. There's a good example in there about turning

2021-03-25 07:28:22    分类:问答    regex

不区分大小写的String split()方法(Case insensitive String split() method)
问题 当我表演 String test="23x34 "; String[] array=test.split("x"); //splitting using simple letter 我有两个数组分别是23和34 但是当我做的时候 String test="23x34 "; String[] array=test.split("X"); //splitting using capitalletter 我在数组23x34中得到了一项 那么,有什么方法可以将split方法用作不区分大小写的方法,或者是否有任何其他方法可以帮助您呢? 回答1 split使用正则表达式模式[xX] String x = "24X45"; String[] res = x.split("[xX]"); System.out.println(Arrays.toString(res)); 回答2 如文档所示, split使用正则表达式。 您的示例的正则表达式为: "[xX]" 同样, (?i)标志可切换大小写不敏感状态。 因此,以下内容也是正确的: "(?i)x" 在这种情况下, x可以是任何乱抛垃圾。 回答3 您还可以在正则表达式中使用嵌入的标志: String[] array = test.split("(?i)x"); // splits case insensitive 回答4 我个人更喜欢使用

2021-04-26 19:19:56    分类:技术分享    java   string   split

.NET HttpSessionState大小写不​​敏感(.NET HttpSessionState Case Insensitivity)
问题 使用“ InProc ”存储的.NET的HttpSessionState似乎将会话变量键值视为不区分大小写。 例如: session["foo"] = 1; session["Foo"] = 2; Trace.Write(session["foo"].ToString()); // => 2 此行为似乎没有记录,所以我想知道它是否只是基础会话存储机制的副作用,还是由类本身有意实现的。 由于C#将其他所有内容都区分大小写,因此会话采取不同的方式会有些不安。 是什么赋予了? 商店类型不同吗? 是否可以与VB向后兼容? 回答1 HttpSessionState的键不区分大小写,以匹配经典ASP Session对象的行为。 这使开发人员更容易将其ASP应用程序移植到ASP.NET,而不会引起细微的区分大小写的问题。 QueryString,Cookie等对象以及其他与Classic-ASP内置对象相似的大小写不敏感键行为也是如此。 在设计ASP.NET时,我在Microsoft的IIS团队中工作,并且ASP.NET尽力使ASP.NET代码尽可能地向后兼容ASP。 这并不意味着ASP.NET具有完美的向后兼容性,但是只要做出决定(例如区分大小写的决定),默认答案就是匹配Classic ASP行为,除非有充分的理由不这样做。 也就是说,我同意可以更好地记录Session的不区分大小写。

2021-04-27 12:08:22    分类:技术分享    .net   asp.net   session-state   session-variables   case-sensitive

Json.NET不区分大小写的属性反序列化(Json.NET Case-insensitive Property Deserialization)
问题 Json.NET将“不区分大小写的属性反序列化”列为已发布的功能之一。 我已经读过,将首先尝试匹配指定属性的大小写,如果找不到匹配项,将执行不区分大小写的搜索。 但是,这似乎不是默认行为。 请参见以下示例: var result = JsonConvert.DeserializeObject<KeyValuePair<int, string>>( "{key: 123, value: \"test value\"}" ); // result is equal to: default(KeyValuePair<int, string>) 如果更改了JSON字符串以匹配属性的大小写(“键”和“值”与“键”和“值”),那么一切都很好: var result = JsonConvert.DeserializeObject<KeyValuePair<int, string>>( "{Key: 123, Value: \"test value\"}" ); // result is equal to: new KeyValuePair<int, string>(123, "test value") 有没有办法执行不区分大小写的反序列化? 回答1 那是个错误。 不区分大小写的属性反序列化是指Json.NET能够将名称为“ Key”的JSON属性映射到.NET类的“ Key”或“ key

2021-04-20 20:58:40    分类:技术分享    c#   json.net

Java switch-case语句中不区分大小写的匹配(Case insensitive matching in Java switch-case statement)
问题 我想知道是否有一种方法可以在java switch case语句中执行不区分大小写的匹配。 默认实现是区分大小写的。 请参见下面的示例。 public class SwitchCaseTest { /** * @param args */ public static void main(String[] args) { switch ("UPPER") { case "upper" : System.out.println("true"); break; default: System.out.println("false"); break; } } } 因此,以上语句返回false作为输出。 而且我正在尝试使其适用于不区分大小写的匹配,例如String.equalsIgnoreCase()可以。 我试图将字符串文字都转换为小写,然后进行比较。 但无法做到。 回答1 如果要这样做:只需确保输入数据全部为小写,并使用小写... switch ("UPPER".toLowerCase()) { case "upper" : .... 本地化问题 同样,古老的本地化问题再次引起人们的注意,也困扰着这件事。例如,在土耳其语区域设置中, i的大写字母不是I ,而是İ ...作为回报, I并没有被变换给i ,但一个“无点的我”: ı 。 别小看这,这可能是一个致命的错误... 回答2

2021-04-07 03:14:42    分类:技术分享    java   string   switch-statement   case-sensitive   case-insensitive

我可以使Windows的Subversion + TortoiseSVN不区分大小写吗?(Can I make Subversion + TortoiseSVN case-insensitive for Windows?)
问题 在过去的几个月中,我一直在使用Subversion与TortoiseSVN进行代码控制,以与服务器进行接口连接,总的来说,这种情况一直很好! 但是,有时我的FoxPro IDE将改变文件扩展名的情况下没有警告,其中“program.prg”变成了“程序。PRG”)的TortoiseSVN显然借此意味着第一个文件已被删除,成为标记为‘失踪’,而第二名称显示为“非版本”,这严重破坏了我跟踪文件更改的能力。 我知道Subversion起源于* nix的区分大小写的世界,但是,与Windows一起使用时,是否有任何方法可以控制Subversion或TortoiseSVN中的这种行为使其文件名不区分大小写? 回答1 不幸的是,Subversion区分大小写。 这是由于可以在区分大小写的文件系统(例如* nix)和不区分大小写的文件系统(例如Windows,Mac)上检出Subversion中的文件。 此预提交的钩子脚本可以帮助您避免在签入文件时出现问题。 如果它不能解决您的问题,我最好的建议是编写一个小脚本,以确保所有扩展名都是小写的,并在每次签入/签出之前运行它。 这将是一个PITA,但也许是最好的选择。 回答2 Windows确实支持区分大小写,但是您必须从Windows API在CreateFile上向其发送正确的POSIX标志! 注册表项可能需要更改(SFU /

2021-04-24 21:39:48    分类:技术分享    windows   svn   tortoisesvn

PHP Case Insensitive Word Replacement
Ok I'm trying to make search terms bold in this search script I'm making, except I can't get it to work case insensitive. function highlight($term,$target){ $terms = explode(" ", $term); foreach($terms as $term){ $result = (eregi_replace($term, "<strong>$term</strong>", $target)); } return $result; } That is the function I have so far.. It says on PHP.net that eregi_replace is case insensitive matching but it's obviously not working for some reason. (I'm a noob). Any ideas? :D

2021-05-02 14:46:59    分类:问答    php

如何使Xpath搜索不区分大小写(How do i make Xpath search case insensitive)
问题 我目前正在进行xpath搜索,搜索已经开始工作,但是我需要使其不区分大小写。 我正在使用的xml文件是1.0,根据我的研究,这意味着我必须使用某种称为“转换函数”的东西,但是我不确定如何执行此操作。 这是我的搜索文件: $holidayDoc = simplexml_load_file('holidays.xml'); // fetch data from form $txtSearch = $_GET['txtSearch']; $qry = "//channel/item[contains(.,\"$txtSearch\")]"; $holidays = $holidayDoc->xpath($qry); // do the xpath query // now loop through all the students echo "Showing title search results for $txtSearch"; foreach ($holidays as $holiday) { echo "<p><a href=\"{$holiday->link}\">{$holiday->title}</a></p> <p><small>$holiday->pubDate</small></p>"; 任何帮助将不胜感激谢谢。 回答1 XPath 1.0: $qry = "/

2021-04-19 08:29:29    分类:技术分享    php   xml   xpath