我想解決如何將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,不是嗎? –