实现按名字搜索的一种方法

当数据库里边存有多个人的时候,调出来需要按名字首字母排列时,需要sql语句的输入来调出数据。

这里用到了mysql的函数convert它在不同字符集中转化的作用。

where限制条件后边进行了模糊查询

$sql="select * from `message` where `py`like 'l%' order by convert(py using gbk) ASC";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){

上面的sql语句就可以搜到姓李的,姓刘的等等;

模糊查询有四种匹配模式:

1· %:表示任意个或多个字符。可匹配任意类型和长度的字符,若是中文就可以用(%%)表示

2· _: 匹配单个任意字符,用来限制表达式的长度语句。

SELECT * FROM `message` WHERE name like '_爱';

这个前边就只能有一个字,刘,李,或者别的。也可以这样'_春_'这样搜,或'刘_'。

[ ]表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';

结果是将排除“老1”到“老4”,寻找“老5”、“老6”、……