我必须在数据库中搜索类似的$string
s。A'?'在引用中,String表示任何字符,因此必须忽略此字符,但所有其他字符必须匹配。
参考CCD_ 2将与CCD_ 3或CCD_。mySQL"Select…"看起来怎么样?
$string = 'abcd?efg';
$row = $mysqli->query("SELECT * FROM $table WHERE String LIKE '$string'");
$result = $row->fetch_assoc();
print_r( json_encode($result) );
LIKE
中的1个字符通配符是_
,因此使用str_replace
将?
替换为_
。
$like_string = str_replace('?', '_', $string);
$stmt = $mysqli->prepare("SELECT * FROM $table WHERE String LIKE ?");
$stmt->bind_param("s", $like_string);
$stmt->execute();
您可以使用这样的正则表达式:
$string = 'abcde?efg';
$searchGroup = explode('?', $string);
$row = $mysqli->query("SELECT * FROM $table WHERE String REGEXP '^" . $searchGroup[0].".".$searchGroup[1]."$'"); // starts with abcde and ends with efg and allows one character between the groups.
这将在两个组之间获得一个字符,它可以是任何字符。来自文档:
"."匹配任何单个字符。