求一个正则匹配sql 比如我用--select address from table1 where address like “%月牙胡同25号%" ----查询,但实际上该字段值是“月芽胡同25号”,所以我查不到,请问怎样才能匹配到 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 字符集的问题。你先show variables like 'char%';看看什么字符集。set names 'gbk';之后,插入一条再select试试:mysql> set names 'gbk';Query OK, 0 rows affected (0.00 sec)mysql> insert into table1 values('月芽胡同25号');Query OK, 1 row affected (0.00 sec)mysql> select address from table1 where address like '%月芽胡同25号%';+--------------+| address |+--------------+| 月芽胡同25号 |+--------------+1 row in set (0.00 sec)mysql> select address from table1 where address like binary '%月芽胡同25号%';+--------------+| address |+--------------+| 月芽胡同25号 |+--------------+1 row in set (0.00 sec) 这个可以,但是不通用.select address from table1 where soundex(address)=soundex('%月牙胡同25号%') 我看错题目了。汗。。月牙胡同, 月芽胡同像这类匹配,应该建立一个同义(音)词表,直接使用 like ... or like ... 进行查询。跟搜索引擎中的同义词表有些类似。 soundex对汉字和数字返回值是一样的,貌似没法用,我想在postgresql下写,有人提示我用正则匹配,但是我不知道匹配语句怎么写 mysql>select address from table1 where address REGEXP ".[月][u4E00-u9FA5]{1}胡同25号.";这个的话就是直接不考虑 牙 这个多音字了 , 你看这样可以不咯。 正确的sql:mysql>select address from table1 where address REGEXP ".[月][^u4E00-u9FA5]{1}胡同25号." 在XP上连接linux上的msyql出错 求助《[推荐] 各种乱码问题汇总》中没有的乱码问题 如何修改MYSQL加密方式 1G的MYSQL怎么处理? 求 MySQL 好的备份策略 rpm安装MySQL遇到的极其奇怪的问题 MYSQL如何执行动态过程. mysql select 问题 mysql表分区 mysql 没有配置文件 .ini文件 mysql同步问题。 我在Windows下安装了MySQL5,数据库的储存路径在哪啊?
你先show variables like 'char%';
看看什么字符集。
set names 'gbk';
之后,插入一条再select试试:
mysql> set names 'gbk';
Query OK, 0 rows affected (0.00 sec)mysql> insert into table1 values('月芽胡同25号');
Query OK, 1 row affected (0.00 sec)mysql> select address from table1 where address like '%月芽胡同25号%';
+--------------+
| address |
+--------------+
| 月芽胡同25号 |
+--------------+
1 row in set (0.00 sec)mysql> select address from table1 where address like binary '%月芽胡同25号%';
+--------------+
| address |
+--------------+
| 月芽胡同25号 |
+--------------+
1 row in set (0.00 sec)
select address from table1 where soundex(address)=soundex('%月牙胡同25号%')
跟搜索引擎中的同义词表有些类似。
mysql>select address from table1 where address REGEXP ".[月][u4E00-u9FA5]{1}胡同25号.";这个的话就是直接不考虑 牙 这个多音字了 , 你看这样可以不咯。
mysql>select address from table1 where address REGEXP ".[月][^u4E00-u9FA5]{1}胡同25号."