我正在试图弄清楚如何在这个准备好的声明中添加LIKE
。
SELECT convention_name FROM events_master
WHERE (convention_name = ?);
目标是查看约定名称是否与convention_name
中已存在的内容类似。我知道它已经检查了完全匹配。
提前致谢。
答案 0 :(得分:0)
例如:
String query = "SELECT convention_name FROM events_master WHERE convention_name like ?";
PreparedStatement stm = conn.prepareStatement(query);
stm.setString(1, "%car%");
您的参数可能包含wildchar%,然后它会找到例如card,scart ..
如果此子串匹配不够,则可以使用soundex算法查找类似的字符串。有关更多选项,请参阅how to compute similarity between two strings in MYSQL。
答案 1 :(得分:0)
SELECT convention_name FROM events_master WHERE(convention_name LIKE'partofname'+'%');
%字符是一个百搭字符,所以如果你把它放在后面,它会搜索以'partofname'+ blah开头的任何内容。
如果它是Like ='%partofname%',则partofname可以在其之前或之后包含字符。
答案 2 :(得分:0)
如果SQL LIKE子句与%字符一起使用,那么它将起作用 像UNIX中的元字符(*),同时列出所有文件或 命令提示符下的目录。
没有%字符,LIKE子句与等号非常相似 以及WHERE子句。
$sql = $dbh->prepare(SELECT convention_name FROM events_master
WHERE convention_name LIKE ?");
$sql->execute(array('%'.$yourSearchString.'%'));