2014-03-13 94 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.'%'));