实现按名字搜索的一种方法
当数据库里边存有多个人的时候,调出来需要按名字首字母排列时,需要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 '_爱';
这个前边就只能有一个字,刘,李,或者别的。也可以这样'_春_'这样搜,或'刘_'。
3· [ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。
4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
结果是将排除“老1”到“老4”,寻找“老5”、“老6”、……