2010-10-27 22 views
0

我使用的VSC++和MySQL數據庫ver.5.2.25,我測試過的查詢在MySQL中是這樣的:轉換一個MySQL查詢,以常規這需要參數

select Name from test.virus where Name LIKE 'b' '%' ORDER BY Name; 

它的工作原理好,並返回所有以'b'開頭的名稱,我想使用例程而不是此查詢,以便我可以從我的程序中調用例程。我已經試過這樣:

-- -------------------------------------------------------------------------------- 
-- Routine DDL 
-- -------------------------------------------------------------------------------- 
DELIMITER $$ 

CREATE DEFINER=`root`@`localhost` PROCEDURE `StartWith`(NewName VarChar(20)) 
BEGIN 
select NameVirus from test.virus 
where NameVirus LIKE "'+NewName+' '%'" ORDER BY NameVirus; 
END 

當我打電話在MySQL日常沒有錯誤,但結果是一個空表,我想這個問題是與參數的類型,哪種類型應該是「 NewName「參數?
高級謝謝任何答覆

回答

0

您在示例查詢中的類似情況是有缺陷的。它應該是'b%'

where子句可能需要像這樣的過程:

where NameVirus LIKE CONCAT(NewName,'%') order by NameVirus 
+0

當我調用的程序中,我用這個: 「呼叫test.StartWith(」 B 「);」我期望它能奏效,我不想在例程中加入'b',我想解析這個論點,你會解釋一下嗎? – rain 2010-10-27 05:29:32

+0

非常感謝:),它工作。我知道我只是一個起動器! – rain 2010-10-27 05:39:53