mysql模糊查询(急用,谢谢!)

来源:百度知道 编辑:UC知道 时间:2024/05/29 06:49:28
mysql_select_db($database_book, $book);
$query_Recordset1 = sprintf("SELECT * FROM oneself WHERE name = '%s'", $colname_Recordset1);
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $book) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
数据库是text的,编码默认就是uf8?就是这个了,谢谢,俺想给该成模糊查询怎么改?

SELECT * FROM oneself WHERE name like '%'
like 是模糊查询的关键字。
% 是通配符,代表多个任意匹配,比如 '%人民' 就是搜索前半段是任意字符,结尾是人民的记录,类似的可以将 % 放在条件字段的任意位置。
_ 是单个字符的统配符,可以匹配单个任意字符。

PHP 不需要像你这样写,双引号中出现的变量将自动被解析。
$sql = "SELECT * FROM oneself WHERE name like '%{$colname_Recordset1}' LIMIT {$startRow_Recordset1}, {$maxRows_Recordset1}";
$Recordset1 = mysql_query($sql) or die(mysql_error());

{} 放在变量两边是直接指明这是个变量及该变量的名字,如果遇到数组类型的变量效果比较明显,不然可能会造成数组型变量名解析出错。

SELECT * FROM oneself WHERE name = '%s'"
改成
SELECT * FROM oneself WHERE name like "%s%"