我有sql查询来搜索这样的关键字
{{1}}
我有问题,如果我用{{1}}搜索名称,我必须输入完整的名称,我只想要输入名称的一部分,我的查询可以在我的表数据库中找到整个名称。任何帮助?
答案 0 :(得分:0)
尝试此操作:
自:
$query_rec_mhs_2015 = sprintf("SELECT * FROM mhs_2015 WHERE no_peserta_mhs_2015 = %s or nama_mhs_2015 like %s ", GetSQLValueString($colname_rec_mhs_2015, "text"), GetSQLValueString($colname_rec_mhs_2015, "text"));
收件人://I've chage %s to '/%'
$query_rec_mhs_2015 = sprintf("SELECT * FROM mhs_2015 WHERE no_peserta_mhs_2015 = '%s' OR nama_mhs_2015 like '%s' ", GetSQLValueString($colname_rec_mhs_2015, "text"), GetSQLValueString($colname_rec_mhs_2015, "text"));
答案 1 :(得分:0)
$query_rec_mhs_2015 = sprintf("
SELECT * FROM mhs_2015 WHERE nama_mhs_2015 like %s
",
GetSQLValueString('%' . str_replace(array('%', '_') , array('\%' ,'\_'), $colname_rec_mhs_2015) . '%', "text")
);
答案 2 :(得分:0)
为什么不使用:
if (isset($_POST['no_peserta_mhs_2015'])) {
$colname_rec_mhs_2015 = $_POST['no_peserta_mhs_2015'];
}
mysql_select_db($database_connect, $connect);
$query_rec_mhs_2015 = sprintf("SELECT * FROM mhs_2015 WHERE no_peserta_mhs_2015 = %s or nama_mhs_2015 like '%%%s%%' ", GetSQLValueString($colname_rec_mhs_2015, "text"), GetSQLValueString($colname_rec_mhs_2015, "text"));
希望它有所帮助:)
答案 3 :(得分:0)
我相信您的代码必须更改为
%s
到'%s'
,但在第一种使用 = 的情况下,无法使用%,而野性字符可以使用LIKE运算符。
所以你的查询将是
sprintf("SELECT * FROM mhs_2015 WHERE no_peserta_mhs_2015 = 's' or nama_mhs_2015 like '%s%'",
GetSQLValueString($colname_rec_mhs_2015, "text"),
GetSQLValueString($colname_rec_mhs_2015, "text"));
为了更好地理解在SQL中使用wildcard characters的能力
答案 4 :(得分:0)
感谢您的所有答案,我用这样简单的语法解决了我的问题:
sprintf("SELECT * FROM mhs_2015 WHERE no_peserta_mhs_2015 = %s or nama_mhs_2015 LIKE %s", GetSQLValueString($colname_rec_mhs_2015, "text"),GetSQLValueString("%" . $colname_rec_mhs_2015 . "%", "text"));