精华内容
下载资源
问答
  • 2021-01-27 21:16:13

    1) 用正式表达式 regexp "[u0391-uFFE5]"

    2) 用length和char_length

    drop table t1;

    create table t1 ( id varchar(200)) default charset=utf8 ;

    insert into t1 values ('中文'),('sdalfkj');

    1)用正式表达式 regexp "[u0391-uFFE5]"

    root@127.0.0.1 : test 21:55:33> select id ,id regexp "[u0391-uFFE5][u0391-uFFE5]" from t1;

    +---------+--------------------------------------------+

    | id | id regexp "[u0391-uFFE5][u0391-uFFE5]" |

    +---------+--------------------------------------------+

    | 中文 | 0 |

    | sdalfkj | 1 |

    +---------+--------------------------------------------+

    2 rows in set (0.01 sec)

    2) 用length和char_length

    root@127.0.0.1 : test 23:33:13> select id,length(id),char_length(id) from t1;

    +---------+------------+-----------------+

    | id | length(id) | char_length(id) |

    +---------+------------+-----------------+

    | 中文 | 6 | 2 |

    | sdalfkj | 7 | 7 |

    +---------+------------+-----------------+

    2 rows in set (0.00 sec)

    更多相关内容
  • MYSQL没有特定的函数来确定是否有中文,但是下面两种绕路的方法可供大家参考:1) 用正式表达式 colname regexp “[\u0391-\uFFE5]”2) 用length和char_length以下是实例:drop table t1;create table t1 ( id ...

    MYSQL没有特定的函数来确定是否有中文,但是下面两种绕路的方法可供大家参考:

    1) 用正式表达式 colname regexp “[\u0391-\uFFE5]”

    2) 用length和char_length

    以下是实例:

    drop table t1;

    create table t1 ( id varchar(200)) default charset=utf8 ;

    insert into t1 values (‘中文’),(‘sdalfkj’);

    1)用正式表达式 regexp “[\u0391-\uFFE5]”

    select id ,id regexp “[\u0391-\uFFE5]“ from t1;

    +———+——————————————–+

    | id | id regexp “[\u0391-\uFFE5][\u0391-\uFFE5]” |

    +———+——————————————–+

    | 中文 | 0 |

    | sdalfkj | 1 |

    +———+——————————————–+

    2 rows in set (0.01 sec)

    当然你可以把id regexp “[\u0391-\uFFE5]“ 放到WHERE条件中去;

    select id from t1 where not(id regexp “[\u0391-\uFFE5]“);

    +——+

    | id |

    +——+

    | 中文 |

    +——+

    1 row in set (0.00 sec)

    2) 用length和char_length

    select id,length(id),char_length(id) from t1;

    +———+————+—————–+

    | id | length(id) | char_length(id) |

    +———+————+—————–+

    | 中文 | 6 | 2 |

    | sdalfkj | 7 | 7 |

    +———+————+—————–+

    2 rows in set (0.00 sec)

    当然也可以把判断条件放到WHERE条件中去;

    select id from t1 where length(id)<>char_length(id);

    +——+

    | id |

    +——+

    | 中文 |

    +——+

    1 row in set (0.00 sec)

    展开全文
  • 今天看到一篇文章,是mysql识别中文字符的方法:于是,我实际试了一下:SELECT vFROM(SELECT 'sql server是微软开发的数据库管理系统' AS v UNION ALLSELECT 'C-123456789' AS v UNION ALLSELECT 'MySQL是一个开源...

    今天看到一篇文章,是mysql中识别中文字符的方法:

    于是,我实际试了一下:

    SELECT v

    FROM

    (

    SELECT 'sql server是微软开发的数据库管理系统' AS v UNION ALL

    SELECT 'C-123456789' AS v UNION ALL

    SELECT 'MySQL是一个开源的数据库管理系统' AS v UNION ALL

    SELECT 'sdalfkj'

    )t

    WHERE v REGEXP '[u0391-uFFE5]'=0

    但是查询结果是空:

    mysql> SELECT v

    -> FROM

    -> (

    -> SELECT 'sql server是微软开发的数据库管理系统' AS v UNION ALL

    -> SELECT 'C-123456789' AS v UNION ALL

    -> SELECT 'MySQL是一个开源的数据库管理系统' AS v UNION ALL

    -> SELECT 'sdalfkj'

    -> )t

    -> WHERE v REGEXP '[u0391-uFFE5]'=0;

    Empty set (0.03 sec)

    之所以会返回空的原因是,REGEXP '[u0391-uFFE5]'表达式的值为1,就是成立的时候,只会对完全是非中文的字符串,返回1,哪怕其中只要包含一个中文字符,就会返回0,所以这个方法不够灵活。

    下面是另一个方法:

    SELECT v

    FROM

    (

    SELECT 'sql server是微软开发的数据库管理系统' AS v UNION ALL

    SELECT 'C-123456789' AS v UNION ALL

    SELECT 'MySQL是一个开源的数据库管理系统' AS v UNION ALL

    SELECT 'sdalfkj'

    )t

    WHERE v REGEXP '[吖-座]'=1

    查询结果显示出,包含中文字符的数据有2条,完全正确:

    mysql> SELECT v

    -> FROM

    -> (

    -> SELECT 'sql server是微软开发的数据库管理系统' AS v UNION ALL

    -> SELECT 'C-123456789' AS v UNION ALL

    -> SELECT 'MySQL是一个开源的数据库管理系统' AS v UNION ALL

    -> SELECT 'sdalfkj'

    -> )t

    -> WHERE v REGEXP '[吖-座]'=1;

    +--------------------------------------+

    | v |

    +--------------------------------------+

    | sql server是微软开发的数据库管理系统 |

    | MySQL是一个开源的数据库管理系统 |

    +--------------------------------------+

    2 rows in set (0.03 sec)

    展开全文
  • 到后台mysql中查看是...并能显示出中文,初步判定是编码的问题。我们利用show variables like'character_set_%';与show variables like'collation_%';该命令查看mysql编码格式是否为以下Variable_name | Value ...

    到后台mysql中查看是问号。

    并不能显示出中文,初步判定是编码的问题。

    我们利用

    show variables like'character_set_%';

    show variables like'collation_%';

    该命令查看mysql编码格式是否为以下

    Variable_name            | Value                                                   |

    +--------------------------+---------------------------------------------------------+

    | character_set_client     | utf8                                                    |

    | character_set_connection | utf8                                                    |

    | character_set_database   | utf8                                                    |

    | character_set_filesystem | binary                                                  |

    | character_set_results    | utf8                                                    |

    | character_set_server     | utf8                                                    |

    | character_set_system     | utf8                                                    |

    | character_sets_dir       | /usr/local/mysql-5.7.16-osx10.11-x86_64/share/charsets/ |

    +--------------------------+---------------------------------------------------------+

    以及

    show variables like'collation_%';

    +----------------------+-----------------+

    | Variable_name        | Value           |

    +----------------------+-----------------+

    | collation_connection | utf8_general_ci |

    | collation_database   | utf8_general_ci |

    | collation_server     | utf8_general_ci |

    +----------------------+-----------------+

    5.5后的mysql 大部分人的默认配置应该是与上面的大部分相同,除了下面这2条

    character_set_database   | latin1

    character_set_server     | latin1

    以及 collation_database和collation_server不一样

    我上面展示的两个表都是修改完成的结果,那么如何修改。

    在5.5后 已经没有my.cnf和my-medium.cnf的文件

    在support-files文件下有一个 my-default.cnf的文件。

    进行如下操作。(进行下面操作之前请关闭数据库以及断开数据库服务)

    sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

    sudo vi /etc/my.cnf

    打开my.cnf后,在文件内的[mysqld]下增加如下两行设置:

    character_set_server=utf8

    init_connect='SET NAMES utf8'

    保存退出

    从新开启数据库服务,打开数据库,查看编码格式,发现已经改变

    需要注意的是,之前在默认情况下创建的表的编码格式并不会改变!所以,如果想让在修改编码格式之前就创建好的表也修改

    请进行如下指令

    1.修改数据库的编码格式

    mysql>alter database character set utf8;

    2.修改数据表格编码格式

    mysql>alter table character set utf8;

    3.修改字段编码格式

    mysql>alter table change character set utf8;

    mysql>alter table user change username username varchar(20) character set utf8 not null;

    一定要注意:修改完的数据库和库里的表 并不会使原来的数据生效,而是新加入的数据才会生效。

    展开全文
  • MYSQL 无法识别中文解决方法 “一劳永逸” 多数情况下,mysql在刚刚安装时是支持中文的,这是由于编码的问题 我们可以通过修改配置文件,永久实现mysql对中文的识别 首先我们要先将文件夹的隐藏文件显示(如图)↓...
  • 主要介绍了mysql如何判断字段中有无汉字的方法,使用length与char_length两个函数就可以完成
  • mysql数据库支持中文的解决方法发布时间:2020-06-26 13:59:31来源:亿速云阅读:88作者:Leah这篇文章运用简单易懂的例子给大家介绍mysql数据库支持中文的解决方法,代码非常详细,感兴趣的小伙伴们可以参考...
  • DROP FUNCTION IF EXISTS `getPY`; DELIMITER ;; CREATE FUNCTION `getPY`(in_string VARCHAR(65534)) RETURNS mediumtext CHARSET utf8 BEGIN DECLARE tmp_str VARCHAR(65534) charset gbk DEFAULT '' ;...
  • mysql中的中文不能显示的解决办法:1、找到mysql的配置文件【my.ini】,找到【default-character-set 】,把参数改成gbk;2、查看表的结构,更改user表中username的字符集。更多相关免费学习推荐:mysql教程(视频)...
  • mysql不识别中文的解决方案

    千次阅读 2018-05-10 15:21:56
    我们利用show variables like'character_set_%';与show variables like'collation_%';该命令查看mysql编码格式是否为以下 Variable_name | Value |+--------------------...
  • 多数情况下,mysql在刚刚安装时是支持中文的,这是由于编码的问题 我们可以通过修改配置文件,永久实现mysql中文识别 首先我们要先将文件夹的隐藏文件显示(如图)↓ 在mysql5.5及更老的版本,配置文件大多...
  • mysql表格显示中文,乱码的解决办法:首先查看数据库的编码方式;然后编辑打开my.ini文件;接着修改内容为“default-character-set=utf8”;最后重新启动数据库即可。推荐:《mysql视频教程》mysql数据表中文乱码...
  • Linux 下使用Mysql 命令行时 中文不兼容问题记录 Mysql使用新手,在linux中使用mysql时遇到中文相关的两个问题 在命令行中无法输入中文 insert 中文显示乱码以及无法插入的 系统环境 操作系统:
  • MySQL的默认编码是Latin1,支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明需要注意的是,要修改的地方非常多,相应的修改方法也很多。下面是一种最简单最彻底的方法:一、Windows1、中止MySQL...
  • JDBC连接mysql处理中文时乱码解决办法详解 近日,整合的项目需要跟一个比较老版本的mysql服务器连接,使用navicat查看,发现此mysql服务器貌似没有设置默认编码,而且从操作此mysql的部分php文件看,应该是使用的gb...
  • MySQL彻底支持中文的方法:系统自带的mysql默认字符集不是gbk,因此给数据库的推广应用以及中文程序的开发带来极大的不便,在没完没了的GBK和UTF8的转换过程中消耗了我们无数的精力以及系统的资源.经过摸索尝试解决...
  • 解决步骤现总结如下:1 修改mysql的配置文件/etc/mysql/conf.d/mysql.cnf在[mysql]的下方加入如下语句:no-auto-rehashdefault-character-set=utf8/etc/mysql/mysql.conf.d/mysqld.cnf在[mysqld]下加入socket = /var/...
  • 目前的项目开发完了一部分,本地测试正常,但是放到服务器上就不行了。本地环境:xampp-3.2.2(php-5.6.15, apache-2.4.17)服务器环境:php-5.3.3、...PDO方法代码:$dsn = "mysql:dbname=$db;port=$this->dbPor...
  • 改默认编码:/etc/init.d/mysql start (stop) 为启动和停止服务器/etc/mysql/ 主要配置文件所在位置 my.cnf/var/lib/mysql/ 放置的是数据库表文件夹,这里的mysql相当于windows下mysql的date文件夹启动mysql后,以...
  • 在window上安装了MySQL数据库,使用MySQL命令行客户端导入数据,无论是通过 sql 脚本导入,还是直接使用插入语句插入,只要数据中含有中文,经常会出报错 主要报错有: ERROR 1366 (HY000): Incorrect string value...
  • 下载运行sql文件即可使用 详情我的博客有介绍如何使用; 以下是文件注释 ##to_pinyin获取全拼 ##粘贴复制运行即可创建这两个函数 ## 获取name字段的首字母和全拼 SELECT to_getPY(name),to_pinyin(name) FROM ...
  • mysql无法识别中文问题 解决问题 步骤一 打开mysql控制台,输入命令show variables like ‘character%’; 查看数据库原先的编码格式 步骤二 可以直接搜索得到,直接关闭服务 步骤三 在mysql安装目录找到 添加 ...
  • 通常情况,Mysql数据编码格式为“utf-8”,对于汉字来说足够;Mysql中utf8占3个字节,但是,3个字节对于表情符号是不够的,需4个字节;此时使用utf8,会出现‘\xF0\x9F\x8D\x83\xF0\x9F’的问题。 1、异常 java....
  • MySQL支持中文

    2021-01-18 18:11:15
    这两天在学习webpy,把webpy的一个blog例子扒下来学习一下,默认创建的table当存入中文的时候是乱码,研究了一下这个问题。1,创建table的时候就使用utf8编码举个例子:1 create tableentries2 (2 id intauto_...
  • mysql> status; //查看数据库状态--------------c:/wamp/bin/mysql/mysql5.5.8/bin/mysql.exe Ver 14.14 Distrib 5.5.8, for Win32 (x86)Connection id: 2Current database:Current user: ro...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,415
精华内容 10,966
关键字:

mysql识别不了中文

mysql 订阅