2014-03-13 88 views
0

我想解决如何将LIKE添加到此准备好的语句。如何正确地在MySQL准备语句中使用WHERE LIKE?

SELECT convention_name FROM events_master 
WHERE (convention_name = ?); 

的目标是看是否约定名称类似于已经存在于convention_name东西。我确实知道它已经检查完全匹配。

在此先感谢。

+0

我猜,这是java,不是吗? –

回答

0

例如:

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

0

SELECT convention_name FROM events_master WHERE(convention_name LIKE'partofname'+'%');

%字符是一个通配符,所以如果你把它放在后面,它会搜索以'partofname'+ blah开头的任何内容。

如果它是Like ='%partofname%',那么partofname可以在它之前或之后有字符。

+0

这是不准备陈述 –

0

如果用%字符一起使用SQL LIKE子句,那么它会工作 像UNIX元字符(*),同时列明的所有文件或在命令提示符下 目录。

如果没有%字符,那么LIKE子句与WHERE子句中的等号 非常相似。

$sql = $dbh->prepare(SELECT convention_name FROM events_master 
WHERE convention_name LIKE ?"); 

$sql->execute(array('%'.$yourSearchString.'%'));