草庐IT

Case-insensitive

全部标签

mysql - 寻找不区分大小写的 MySQL 排序规则,其中 "a"!= "ä"

我正在寻找适用于UTF8的MySQL排序规则,它不区分大小写并区分“a”和“ä”(或者更一般地说,区分变音/重音字符和它们的“纯”形式)。utf8_general_ci做前者,utf8_bin做后者,botnone做两者。如果没有这样的排序规则,我该怎么做才能在WHERE子句中尽可能接近? 最佳答案 我的建议是使用utf8_bin并在您的WHERE子句中,将比较的两边都强制为大写或小写。 关于mysql-寻找不区分大小写的MySQL排序规则,其中"a"!="ä",我们在StackOver

MySQL CASE EnumInt WHEN Varchar ELSE Int 返回为 BLOB - 如何转换为 Varchar?

以下返回一个BLOB,我如何将这个else值转换为VARCHAR来解决我的问题?SELECTCASEEnumIDWHEN1THEN'Red'WHEN2THEN'Green'WHEN3THEN'Blue'ELSEEnumIDENDASEnumValueFROMTable在MSSQL/TSQL中我使用ELSECAST([EnumID]ASVARCHAR(100))但是MySQL提示。我想要的只是一个故障转移,如果这个存储过程不知道一个新的枚举值来管理代码、主数据库和数据仓库数据持久性。必然是一个显而易见的答案...显然问题似乎出在使用VARCHAR上?刚发现CAST(EnumIDASCHA

mysql - 如何创建带重音的 Mysql 唯一不区分大小写的索引 - (或使用 NO 排序规则)

我正在与排序规则作斗争。我想在不区分大小写但区分“a”和“à”的单词上建立一个具有唯一索引的表。这意味着“de”和“dé”应该是2个不同的条目,但de、De、DE、dE应该是相同的。是否有一个utf8排序规则可以完成这项工作(似乎不是这样)?有没有办法告诉mysql不要使用任何排序规则?还有其他解决方案吗?我不想把我的话改成小写或大写谢谢 最佳答案 Isthereanutf8collationthatdothejob(itdoesnotseemstobethecase)?MySQL附带的排序规则都不会这样做:utf8_*_ci排序规

MYSQL WHEN CASE THEN 什么都不做

我想做的是在一个非常简单的3列数据库中设置一些字段,我用它来管理一些复选框。如果id在列表中,我想将col_2设置为1,保持col_3状态不变。但如果id不在列表中,则将col_2和col_3设置为0。这是我目前所拥有的,它不起作用,因为它给了我一些警告并更改了col_3的值:UPDATEtSETcol_2=CASEWHENidIN(list)THEN1WHENidNOTIN(list)THEN0END,col_3=CASEWHENidNOTIN(list)THEN0ENDWHEREidISNOTNULL;感谢任何帮助:) 最佳答案

Mysql 使用 SELECT CASE 的结果存储变量

我正在学习如何使用SELECTCASE,但我不太了解,这是代码:SET@vgls=1;SET@lgls=1;SET@st=SELECTCASEWHEN@vgls=@lglsTHEN"emp"WHEN@vgls>@lglsTHEN"loc"WHEN@vgls它给我以下错误:[Err]1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyouMySQLserverversionfortherightsyntaxtousenear'SELECTCASEWHEN@vgls=@lglsTHEN"emp"WHEN@vg

mysql - 使用 CASE WHEN 查询

我正在尝试编写这样的查询,但出现错误。这是我第一次使用案例,所以我认为这就是问题所在。UPDATEmy_tableCASEWHENdownloadsISNULLTHENSETdownloads=1ELSESETdownloads+1ENDWHEREattachment_id=8990ANDparent_post_id=9221ORattachment_id=9211ANDparent_post_id=383 最佳答案 你可以重写如下UPDATEmy_tableSETdownloads=CASEWHENdownloadsISNULLT

php - PHP 和 MySQL 的大小写敏感问题

我试图通过PHP从MySQL数据库返回一个XML列表,但遇到了区分大小写的问题。这是我正在使用的当前代码$query="SELECT*FROMFOOWHEREFOOLIKE'%$term%'ORDERBYFOO";在我的数据库中,我将名字列为“Joe”,因此为了返回XML,我必须将$term输入为“Joe”。我不会用“joe”或“JOE”,但我想用。我不确定是否可以直接通过PHP完成此操作,或者是否需要调整MySQL表。 最佳答案 SELECT*FROMfooWHEREfooCOLLATEUTF8_GENERAL_CILIKE'%$

选择时的 MySQL CASE

我有以下查询:SELECTCASEWHEN`def_spell`.`type`=0THEN`spells_damage`.*WHEN`def_spell`.`type`=1THEN`spells_weaken`.*ENDFROM`def_spell`LEFTJOIN`spells_damage`ON`def_spell`.`id`=`spells_damage`.`spell_id`LEFTJOIN`spells_weaken`ON`def_spell`.`id`=`spells_weaken`.`spell_id`WHERE`def_spell`.`id`=1;希望这是有道理的...

mysql - 如何根据 CASE 语句的值编写 WHERE 语句?

以下查询返回表names中所有new_name的结果集SELECTCASEWHENnickname=''THENfullnameELSEnicknameENDASnew_name,FROMnames我正在尝试使用以下查询按new_name进行搜索SELECTCASEWHENnickname=''THENfullnameELSEnicknameENDASnew_name,FROMnamesWHEREnew_nameLIKE'%Joh%'但是我得到了错误“where子句”中的未知列“new_name”有没有一种方法可以在不使用子查询的情况下使用此功能? 最佳答案

php - Drupal 7 - 不区分大小写的 LIKE 与 db_select

我无法使用MySQL和Drupal7使查询不区分大小写。这是我的模块代码:$results=db_select('people_table','p')->fields('p');if(array_key_exists('department',$_GET)){$results->condition('Department','%'.db_like($_GET['department']).'%','LIKE');}return$results->orderBy('Name','ASC')->execute();在URL中使用?department=Chemistry,我得到三个结果。在