高分求一个mysql正则表达式 网上查到\u4e00-\u9fa5表示unicode的中文范围,可数据库中测试的时候发现结果相反。(数据库为utf8)。现在求助大家一个mysql中的正则。要求如下:如果一个字符串中包含有中文(当然也可以包含数字,括号,下划线,空格,标点符号等等),包含中文是必须的条件,那么就返回true,否则返回false。请大家看仔细,一定要包含中文,其他字符不限制。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 筛选有汉字的记录:SELECT *FROM `snuo_news_text`WHERE textname REGEXP '[^ -~]' =1 英文字母的范围是从 空格 到 ~ [^ -~] 代码不属于空格到~的任何字符。 当有中文的时候会结果为 true, 但并不正确,比如当你的字符串中包括 \n , \t 等时也会为 true. 下例可以看出,在'ab12A\t=' 时结果并不正确。mysql> select 'ab12A=' regexp '[^ -~]';+--------------------------+| 'ab12A=' regexp '[^ -~]' |+--------------------------+| 0 |+--------------------------+1 row in set (0.00 sec)mysql> select 'ab1字2A=' regexp '[^ -~]';+----------------------------+| 'ab1字2A=' regexp '[^ -~]' |+----------------------------+| 1 |+----------------------------+1 row in set (0.00 sec)mysql> select 'ab12A\t=' regexp '[^ -~]';+----------------------------+| 'ab12A\t=' regexp '[^ -~]' |+----------------------------+| 1 |+----------------------------+1 row in set (0.00 sec)正确的应该如下。mysql> select 'ab12A=' regexp '[^[.NUL.]-~]';+--------------------------------+| 'ab12A=' regexp '[^[.NUL.]-~]' |+--------------------------------+| 0 |+--------------------------------+1 row in set (0.00 sec)mysql> select 'ab12A\t=' regexp '[^[.NUL.]-~]';+----------------------------------+| 'ab12A\t=' regexp '[^[.NUL.]-~]' |+----------------------------------+| 0 |+----------------------------------+1 row in set (0.00 sec)mysql> select 'adf字123符串rg' regexp '[^[.NUL.]-~]';+----------------------------------------+| 'adf字123符串rg' regexp '[^[.NUL.]-~]' |+----------------------------------------+| 1 |+----------------------------------------+1 row in set (0.02 sec)mysql> mysql数据查询问题,类似行转列,望各位帮忙解答 这样的查询能否实现? Toad for mysql的问题 mysql如何导入txt文件里的数据,有点急啊 MS SQL与MySQL语句的转换问题 我可是初学者啊,就不知道这是啥问题。 请教个mysql添加用户的问题 我在xp下面装mysql,但是怎么启动不了!老是出现1067错误??这是怎么回事?? mysql的外键如何建立? mysql中如何在查询中得到各字段的相关属性? libpqC库中是否提供数据库备份的函数? 交学费,问个关于用psql语句导出数据的问题
SELECT *
FROM `snuo_news_text`
WHERE textname REGEXP '[^ -~]' =1
mysql> select 'ab12A=' regexp '[^ -~]';
+--------------------------+
| 'ab12A=' regexp '[^ -~]' |
+--------------------------+
| 0 |
+--------------------------+
1 row in set (0.00 sec)mysql> select 'ab1字2A=' regexp '[^ -~]';
+----------------------------+
| 'ab1字2A=' regexp '[^ -~]' |
+----------------------------+
| 1 |
+----------------------------+
1 row in set (0.00 sec)mysql> select 'ab12A\t=' regexp '[^ -~]';
+----------------------------+
| 'ab12A\t=' regexp '[^ -~]' |
+----------------------------+
| 1 |
+----------------------------+
1 row in set (0.00 sec)
正确的应该如下。
mysql> select 'ab12A=' regexp '[^[.NUL.]-~]';
+--------------------------------+
| 'ab12A=' regexp '[^[.NUL.]-~]' |
+--------------------------------+
| 0 |
+--------------------------------+
1 row in set (0.00 sec)mysql> select 'ab12A\t=' regexp '[^[.NUL.]-~]';
+----------------------------------+
| 'ab12A\t=' regexp '[^[.NUL.]-~]' |
+----------------------------------+
| 0 |
+----------------------------------+
1 row in set (0.00 sec)mysql> select 'adf字123符串rg' regexp '[^[.NUL.]-~]';
+----------------------------------------+
| 'adf字123符串rg' regexp '[^[.NUL.]-~]' |
+----------------------------------------+
| 1 |
+----------------------------------------+
1 row in set (0.02 sec)mysql>