我想解决如何将LIKE
添加到此准备好的语句。如何正确地在MySQL准备语句中使用WHERE LIKE?
SELECT convention_name FROM events_master
WHERE (convention_name = ?);
的目标是看是否约定名称类似于已经存在于convention_name
东西。我确实知道它已经检查完全匹配。
在此先感谢。
我想解决如何将LIKE
添加到此准备好的语句。如何正确地在MySQL准备语句中使用WHERE LIKE?
SELECT convention_name FROM events_master
WHERE (convention_name = ?);
的目标是看是否约定名称类似于已经存在于convention_name
东西。我确实知道它已经检查完全匹配。
在此先感谢。
例如:
String query = "SELECT convention_name FROM events_master WHERE convention_name like ?";
PreparedStatement stm = conn.prepareStatement(query);
stm.setString(1, "%car%");
你的论点可能包含wildchar%,这时就会发现例如卡,SCART ..
如果这个字符串匹配是不够的,那么你可以使用同音算法找到类似的字符串。有关更多选项,请参阅how to compute similarity between two strings in MYSQL。
SELECT convention_name FROM events_master WHERE(convention_name LIKE'partofname'+'%');
%字符是一个通配符,所以如果你把它放在后面,它会搜索以'partofname'+ blah开头的任何内容。
如果它是Like ='%partofname%',那么partofname可以在它之前或之后有字符。
这是不准备陈述 –
如果用%字符一起使用SQL LIKE子句,那么它会工作 像UNIX元字符(*),同时列明的所有文件或在命令提示符下 目录。
如果没有%字符,那么LIKE子句与WHERE子句中的等号 非常相似。
$sql = $dbh->prepare(SELECT convention_name FROM events_master
WHERE convention_name LIKE ?");
$sql->execute(array('%'.$yourSearchString.'%'));
我猜,这是java,不是吗? –