MYSQL字符串大小写 缺省行为

2023-11-09

今天遇到一个主键冲突的文件,  我看两条记录的主键明明不一样, 一条是大写的JAA, 另外一条是小写的jaa,  莫灰是mysql对字段的值不区分大小写, 在网上查了一下, 还真是(默认情况下), 找了一篇文章:
 
1、Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql table editor中直接勾选BINARY项。
 
 
MySQL查询字符串时大小写不敏感
最近反映如果注册了阿龙。阿磊就不能注册的问题!这个是mysql问题!很多用mysql的论坛都有这个问题。而且不仅仅是这两个词的问题。
出现这个问题的原因是:MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象。
方法一:
解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。
方法二:
如果你使用源码编译MySQL,可以编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。
方法三:
可以使用 Mysql 的 locate 函数来判断。以上述问题为例,使用方法为:  SELECT * FROM table WHERE locate(field,'李') > 0;
方法四:
把您的Select语句改成这样,SELECT * FROM TABLE WHERE FIELDS LIKE BINARY '%FIND%'即可!
方法五:
如果你在Windows下使用已经编译好的MySQL,可以修改My.ini中的字符集选项。
default-character-set = gb2312

在默认情况下,mysql搜索不区分大小写(但某些字符集始终区分大小写,如czech)。这意味着,如果你使用col_name LIKE 'a%'进行搜索,你将获得以A或a开始的所有列。 如果打算使搜索区分大小写,请确保操作数之一具有区分大小写的或二进制校对。例如,如果你正在比较均适用latin1字符集的列和字符串,可使用COLLATE操作符,使1个操作数具有latin1_general_cs或latin1_bin校对特性。例如:
col_name COLLATE latin1_general_cs LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_general_cs
col_name COLLATE latin1_bin LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_bin
如果希望总是以区分大小写的方式处理列,可使用区分大小写的或二进制校对声明它。建表时候使用BINARY标示。
CREATE TABLE T(
    A VARCHAR(10) BINARY
);
如果是自己的服务器使用win系统,方法五是最好的方法!如果是linux系统,可以使用方法二!如果不是自己的机子,可以使用方法一,这样你的用户名是严格区分大小写的!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MYSQL字符串大小写 缺省行为 的相关文章

  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 使用 Windows 任务计划程序安排 [Virtualenv 相关] Python 脚本

    I want to schedule a python script to start at 3AM and break at 5PM every weekday However the problem arises when I need
  • CakePHP - 获取上次运行的查询

    我想获取 CakePHP 运行的最后一个查询 我无法在 core php 中打开调试 也无法在本地运行代码 我需要一种方法来获取最后一个 sql 查询并将其记录到错误日志中而不影响实时站点 该查询失败但正在运行 像这样的事情会很棒 this
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • 在 wampserver 2.2 上安装 php_imagick.dll PHP 扩展

    我使用的是 32 位操作系统的 Windows 7 我安装了 ImageMagick 6 8 7 Q16Link https www imagemagick org script download php windows我能够从命令行 转换
  • MySQL中如何存储小数?

    我尝试过将 DECIMAL 与 2 2 一起使用 但它不允许我使用它 我只想存储一个数字 例如 7 50 或 10 50 我需要将这两个数字保留在小数点后 但是当我刷新数据库时 它会将值重置为 0 99 有什么建议么 第一个参数DECIMA
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • 在PHP中,如何在表格中显示数组内容

    如果我在 MySQL 客户端中进行选择 我将得到如下所示的输出 mysql gt select FROM group LIMIT 2 group id group supergroup id group deletable group la
  • 设置 Apache POI 的路径

    我想创建 Excel 文件并使用 java 程序在该文件中写入数据 That is here http www techbrainwave com p 554我在 java 文件所在的位置提取了 Apache POI 并将该路径包含在路径变
  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • 在 MySQL 中插入时检查并防止相似字符串

    简要信息 我有3张桌子 Set id name SetItem set id item id position TempSet id 我有一个函数可以生成新的随机组合Item桌子 基本上 总是在成功生成之后 我在中创建一个新行Set表 获取
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • Laravel Schema Builder 改变存储引擎

    我正在尝试更改表并将其存储引擎更改为InnoDb 当我跑步时php artisan migrate它完成且没有错误 然而 当我检查 Sequel Pro 中的存储引擎时 没有任何变化 public function up Schema ta
  • 使用数据库进行日志记录

    大多数日志似乎都是纯文本形式 而不是放入 MySQL 其他类型的数据库中 这是否有原因 在我看来 将它们放入数据库将使分析变得非常非常容易 但这会以牺牲速度还是其他什么为代价 我不太关心可移植性 显然你会有数据库连接的文本日志 我能想到两大
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 通过Java从MySQL中获取大量记录

    有一个 MySQL 表 服务器上的用户 它有 28 行和 100 万条记录 也可能会增加 我想从这个表中获取所有行 对它们进行一些操作 然后将它们添加到 MongoDB 中 我知道通过简单的 从用户中选择 操作来检索这些记录将花费大量时间
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star

随机推荐

  • mac-右键-用VSCode打开

    1 点击访达 搜索自动操作 2 选择快速操作 3 执行shell脚本 替换代码如下 for f in do open a Visual Studio Code f done command s保存会出现一个弹框 保存为 用VSCode打开
  • IDEA2021.2创建java web项目(很详细,手把手创建)

    该文章适合人群 初学java web 不用maven或者gradle创建java web项目 忘记了怎么创建web项目 错误示范 上来直接创建java ee 项目 这样创建出来的项目有Maven或者Gradle包管理 正确演示 1 创建项目
  • “威胁”员工全来上班后,马斯克“尴尬”了:车没地停、工位不够坐、Wi-Fi 还太差

    点击蓝色 程序员黄小斜 关注我哟 加个 星标 每天和你一起多进步一点点 整理 郑丽媛 出品 程序人生 ID coder life 每一个特斯拉员工每周都要在办公室工作 40 个小时 如果你不来 那么我们就认为你辞职了 在马斯克 蛮横 地放出
  • python机器学习——NLTK及分析文本数据(自然语言处理基础)

    NLTK NLTK Natural Language Toolkit 自然语言处理工具包 在NLP 自然语言处理 领域中 最常使用的一个Python库 自带语料库 词性分类库 自带分类 分词功能 NLTK安装 安装 pip install
  • OpenCart 常见错误解决

    1 GC 报错 错误内容 opencart SessionHandler gc ps files cleanup dir opendir var lib php5 failed Permission denied 解决方法 更改 php i
  • 【论文记录】Boosting Detection in Crowd Analysis via Underutilized Output Features

    Boosting Detection in Crowd Analysis via Underutilized Output Features Abstract Crowd Hat使用一种混合的2D 1D压缩技术进行细化空间特征与获取特定人群
  • k8s删除pod镜像没响应marking for deletion pod TaintManagerEviction

    使用命令强制删除 Pod的状态为 Marking for deletion 表示该Pod正在被标记为待删除状态 但实际上并没有被删除 这可能是因为以下原因之一 删除操作被阻塞 可能是由于某些资源或容器正在使用该Pod 导致删除操作被阻塞 您
  • Python报错:module 'scipy' has no attribute 'xxx'

    首先看使用的函数在不在这几个当中 以 interpolate 为例 scipy 将 interpolate 单独定义为一个小子库 所以调用的时候不能单独写 import scipy 而是要写成 import scipy interpolat
  • 路由器打印机服务器系统,路由器怎么设置打印机服务器

    路由器怎么设置打印机服务器 内容精选 换一换 CDC Change Data Capture 即数据变更抓取 通过为源端数据源开启CDC ROMA Connect可实现数据源的实时数据同步以及数据表的物理删除同步 ROMA Connect支
  • DS排序--希尔排序

    目录 题目描述 思路分析 AC代码 题目描述 给出一个数据序列 使用希尔排序算法进行降序排序 间隔gap使用序列长度循环除2直到1 输入 第一行输入t 表示有t个测试示例 第二行输入n 表示第一个示例有n个数据 n gt 1 第三行输入n个
  • PowerBUS 双总线收发器

    随着智能化的发展 人的需求变高 在一个环境内 如果子设备较多 距离适中 大多数是布置485总线加电源地需要4根线 这样就会导致走线复杂 线的成本也较高 如果用BLE或者wifi无线连接时也需要电源地2根线 成本更高 而powerbus双总线
  • Android基础学习总结(十六)——基于ijkplayer封装支持简单界面UI定制的视频播放器

    前言 项目开发中遇到需要解析播放m3u8视频流的情况 但是原生的PlayerView非常慢 使用起来复杂 不适合上手 这里找到一款ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器 支持播放本地网络视频 也支持
  • [Spring学习]04 Spring IOC创建Bean的几种方式

    目录 一 调用构造器创建Bean对象 二 调用静态工厂方法创建Bean对象 三 调用实例 动态 工厂方法创建Bean对象 一 调用构造器创建Bean对象 通过调用构造器创建Bean对象是我们在实际开发中最常用的方式 而构造器创建Bean对象
  • 运维小知识之企业内部NTP服务器基础安装与配置使用

    0x00 前言简述 基础概念 服务方式 公共 NTP 服务器 0x01 服务器安装配置 CentOS Ubuntu 1 NTP 服务 2 Chrony 服务 0x02 NTP客户端配置 Windows 服务器 Linux 服务器 0x04
  • YOLO系列梳理(三)YOLOv5

    前言 YOLOv5 是在 YOLOv4 出来之后没多久就横空出世了 今天笔者介绍一下 YOLOv5 的相关知识 目前 YOLOv5 发布了新的版本 6 0版本 在这里 YOLOv5 也在5 0基础上集成了更多特性 同时也对模型做了微调 并且
  • 计网第五章(运输层)(七)(TCP的连接建立)

    目录 一 基本概述 二 连接建立 1 基本任务 2 具体实现 三 经典问题之为什么不用 两次握手 一 基本概述 在前面的部分提到过 TCP是基于运输连接来传输TCP报文段 所以TCP的连接和释放是每次面向连接的通信过程中必不可少的过程 TC
  • 7-16 插松枝

    人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上 做成大大小小的松枝 他们的工作流程 并不 是这样的 每人手边有一只小盒子 初始状态为空 每人面前有用不完的松枝干和一个推送器 每次推送一片随机型号的松针片 工人首先捡起一根空的松枝干
  • Flutter中深入了解MaterialApp,常用属性解析

    一 Flutter中结构图 Flutter Framework Foundation Animation Painting Gestures合成了Dart UI层 对应的是Flutter中 dart ui 包 对应的含义是动画 手势 绘制能
  • Android compileSdkVersion 升级到33

    compileSdkVersion minSdkVersion 和 targetSdkVersion 1 minSdkVersion 应用兼容的SDK API最低版本 若手机系统低于minSdkVersion将无法安装 AndroidStu
  • MYSQL字符串大小写 缺省行为

    今天遇到一个主键冲突的文件 我看两条记录的主键明明不一样 一条是大写的JAA 另外一条是小写的jaa 莫灰是mysql对字段的值不区分大小写 在网上查了一下 还真是 默认情况下 找了一篇文章 摘自 http www oklinux cn h