mysql 8.0 查询条件 大小写敏感
时间: 2023-05-03 11:07:55 浏览: 315
MySQL 8.0 在查询条件中默认是大小写敏感的,也就是说,如果你使用的查询条件中有大小写不同的字符,那么查询结果可能就不同。MySQL 8.0 之前的版本中查询条件是大小写不敏感的,但是在 8.0 版本中进行了改变,这是由于 MySQL 8.0 引入了新的排序规则,需要区分大小写,以支持更多的字符编码。
如果您希望在 MySQL 8.0 中进行大小写不敏感的查询,可以通过以下方式实现:
1. 将查询条件转换为小写或大写字母,这样就可以忽略大小写的差异,例如:
SELECT * FROM table_name WHERE LOWER(column_name) = 'value';
2. 在创建表时使用 COLLATE 子句指定排序规则为不区分大小写,例如:
CREATE TABLE table_name (
id INT,
column1 VARCHAR(20) COLLATE utf8_general_ci,
column2 VARCHAR(20) COLLATE utf8_general_ci,
...
);
在这种情况下,即使查询条件中有大小写不同的字符,MySQL 也将忽略它们之间的差异,以匹配列的实际值。
总之,MySQL 8.0 查询条件是大小写敏感的,但是可以通过转换查询条件或设置排序规则来实现大小写不敏感的查询。
相关问题
mysql8.0设置大小写不敏感
在MySQL 8.0中,要设置大小写不敏感,需要进行以下步骤:
1. 在安装MySQL 8之前,确保已经卸载了系统中的其他MySQL版本,并清除数据目录。数据目录可以选择非默认位置,或者删除/var/lib/mysql目录。如果要保留旧的数据目录,请先进行备份。
2. 安装MySQL 8。可以通过YUM repository进行安装。
3. 在初次使用systemd启动mysqld之前,在MySQL配置文件(/etc/my.cnf)中添加lower_case_table_names=1。这个参数的值决定了表名的大小写是否敏感。
4. 进行初始化。使用systemctl start mysqld命令启动MySQL。
这样,MySQL 8就会被设置为大小写不敏感。请注意,MySQL禁止在重新启动MySQL服务时将lower_case_table_names设置成不同于初始化时的值。因此,在设置lower_case_table_names之后,如果需要重新启动MySQL服务,需要先停止MySQL,删除数据目录(即/var/lib/mysql目录),然后再启动MySQL。
希望这个回答对您有帮助![1][2][3]
linux安装mysql 8.0 取消大小写敏感
要在Linux上安装MySQL 8.0并取消大小写敏感,可以按照以下步骤进行操作:
1. 首先,按照亮亮同学的教程,安装MySQL 8.0。可以参考引用中的详细图文教程。
2. 安装完成后,将mysqld服务添加到系统。使用以下命令将mysql.server复制到/etc/init.d/mysql目录下:
```
cp -a ./support-files/mysql.server /etc/init.d/mysql
```
3. 授权并添加服务。使用以下命令修改权限和添加服务:
```
chmod x /etc/init.d/mysql
chkconfig --add mysql
```
4. 启动MySQL服务。使用以下命令启动MySQL:
```
systemctl start mysql
```
5. 将mysql命令添加到系统路径。使用以下命令创建符号链接:
```
ln -s /usr/local/mysql-8.0/bin/mysql /usr/bin
```
6. 登录MySQL。使用以下命令登录到MySQL:
```
mysql -uroot -p
```
7. 修改密码。使用以下命令修改root用户的密码:
```
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
```
8. 刷新服务。使用以下命令刷新MySQL服务:
```
flush privileges;
```
9. 切换到mysql数据库。使用以下命令切换到mysql数据库:
```
use mysql;
```
10. 允许所有IP远程访问并刷新服务。使用以下命令更新用户权限并刷新MySQL服务:
```
update user set host='%' where user='root';
flush privileges;
```
如果你想取消MySQL的大小写敏感设置,可以按照以下步骤进行操作:
1. 停止MySQL服务。使用以下命令停止MySQL服务:
```
service mysql stop
```
2. 编辑MySQL配置文件。使用编辑器打开/etc/my.cnf文件,并在[mysqld]部分添加以下内容:
```
lower_case_table_names=1
```
3. 重新初始化MySQL。使用以下命令重新初始化MySQL:
```
mysqld --user=mysql --basedir=/opt/mysql/basedir --datadir=/opt/mysql/datadir --lower-case-table-names=1 --initialize
```
4. 启动MySQL服务。使用以下命令启动MySQL服务:
```
service mysql start
```
5. 修改密码。使用以下命令登录到MySQL并修改root用户的密码:
```
mysql -u root -p(临时密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
```
6. 重新创建用户和授权。使用以下命令创建新的用户并授权:
```
create user '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
grant all on *.* to '用户名'@'%';
```
请注意,在取消大小写敏感设置之前,请确保备份所有数据库数据。取消大小写敏感设置会导致数据丢失。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [【linux&&mysql8.0】linux 中mysql8.0数据库忽略大小写](https://blog.csdn.net/qq_40946177/article/details/130078399)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [MySQL8.0表名大小写问题(Linux)](https://blog.csdn.net/tongxin_tongmeng/article/details/128293686)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文