2012-11-21 42 views
1

我想從SQLite中的2個表中比較2個類似的列。我寫了這不會拋出錯誤,但也不會返回任何東西,我知道它應該。SQLite如何在列上使用LIKE並添加通配符

SELECT t1.* from t1, t2 Where t1.col1 Like '%'||t2.col1||'%'; 

我正在尋找時t2.col1被嵌入的t1.col1內的。兩列都是TEXT類型。

注:我使用的是C-接口在C++和Visual Studio 2010

想法?

編輯:

我打得圍繞在t1.col1拉出的t2.col1值相匹配的東西,寫這樣的事情,

SELECT t1.* from t1, t2 Where t1.col1 Like '%ValueInT1%'; 

其工作並返回的東西。

在連接like語句中的'%'字符時是否存在SQLite的錯誤,或者是否有我應該使用的不同語法?我不知道爲什麼這不起作用。

我也看到一個叫做Locate的SQL函數,人們在不同的數據庫中使用這個函數來做這種檢查。 SQLite有一個定位功能嗎?

編輯2:

我已經運行在SQLite的管理員第一個SQL語句與我的一些數據,它並找到它。會不會有一個更簡單的問題?數據中有'_'可能導致類似的問題?

+2

你在SQLite Administrator或類似的工具中運行查詢嗎?是相同字符串類型的t1.col1和t2.col1? –

+0

不,我沒有。我對這個工具也不熟悉,它是如何工作的?是的,兩列都是TEXT類型的。我會更新這個問題。 – Dan

+0

您可以相對容易地將函數添加到SQLite;它是一個受支持的擴展點(儘管它們擊敗查詢優化器)... –

回答

0

(V.V)答案是我加入了真正表中的錯誤列。 2列有非常相似的名稱,我正在檢查錯誤的名稱。

感謝您的幫助。

相關問題