MySQL中的字符串模式匹配

MySQL中的字符串模式匹配
以“b”开头的: 
LIKE  "b % "
以“fy”结尾的: 
LIKE  " % fy"
包含一个“w”的:  
LIKE  " % w % "
包含正好5个字符的: 
LIKE  "_____"

%  , 匹配任何数目的字符,甚至包括零字符  
_ , 只能匹配一种字符 

REGEXP和NOT REGEXP操作符(或RLIKE和NOTRLIKE,它们是同义词)
LOCATE,较like中文支持更好
方法一:
    解决方法是对于包含中文的字段加上"
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% ' 即可



多个select的结果排序
mysql按匹配程度排序
根据匹配度来排序

查询上万个~~~

CREATE INDEX

SELECT playerName MATCH(playerName) AGAINST ('lan') FROM uw_new_map;  

听说AGAINST不用 IN BOOLEAN MODE 会慢些, 是吗?
那如果用了IN BOOLEAN MODE 怎么进行排序呢? + - <> 这些逻辑搜索貌似都无法满足我排序的要求




你可能感兴趣的:(MySQL中的字符串模式匹配)