2017-09-26 70 views
1

我在C++中使用SQLite來查詢數據庫。我想用LIKE運營商在select語句如SQLite C++語句格式

SELECT * FROM table WHERE columnName LIKE '%abc%' 

但我需要爲abc的值綁定在上面的語句查詢。通常,對於像SELECT * FROM table WHERE [email protected]這樣的正常語句,我們可以使用query.bind(@name, 'name');

但是對於LIKE運算符,我無法使其工作。我不確定我是否應該將其作爲'%@name%'?這不起作用並引發綁定錯誤異常。

任何建議都會非常有幫助,因爲否則,我需要瀏覽具有100行的整個搜索結果,並檢查每行的大字符串數組中的值。我們的想法是將字符串數組元素作爲LIKE運算符的綁定值來搜索數據庫並獲取一行。

任何想法?

非常感謝,提前。

Esash

+1

綁定只能通過參數值,而不是其他地方工作的聲明。您將不得不使用字符串操作來構造LIKE子句,或者參閱https://stackoverflow.com/questions/4329953/c-sharp-sqlite-parameterized-select-using-like。 –

+2

您是否嘗試過'LIKE @ name'和'query.bind(「@ name」,「%」+ abc +「%」)'[需要修復我的語法]? –

回答

1

如果名稱是一個變量,使用:

name = "%" + name + "%"; 
query.bind("@name", name); 
+0

非常感謝,它像一個魅力。 – Esash

2

您可以添加百分號結合後:

... WHERE Col Like '%' || ? || '%'