子字符串在字符串中时表中的SQL SELECT

时间:2014-04-06 06:22:12

标签: python sql sqlite

假设我在sqlite3数据库(通过python)中有一个名为table1的表,其中有两列名为' id'和'字符串'以下是表格中的三个条目:

   id                string
  'a'               'google'
  'b'               'apple'
  'c'            'application' 

所以,让我说我希望所有的行都有' app'在他们身上,我该怎么做?我正在寻找这样的事情:

SELECT * FROM table1 WHERE 'app' in string

理论上会返回最后两行......

3 个答案:

答案 0 :(得分:0)

您可以使用LIKE

SELECT * FROM table1 
WHERE string LIKE '%app%'

<强> DEMO

<强>更新

使用前面的通配符(LIKE '%app%')时,性能大致相同。

如果您希望字符串以app开头,那么使用LIKE 'app%'会更好。原因如下: -

  

第一个通配符之前的部分用作访问谓词,即它们限制扫描的索引范围。该   剩余的字符不会缩小扫描的索引   范围不匹配的条目只是在结果之外。

答案 1 :(得分:0)

试试这个:

SELECT * FROM table1 WHERE string LIKE '%app%'

答案 2 :(得分:0)

这非常简单。你需要使用LIKE&#39;%&#39; SQL中的运算符。它用于字符串匹配。

您的查询应该是这样的:

SELECT * FROM table1
WHERE string LIKE '%app%'

因为您没有提及“应用程序”是否适用于“应用程序”。应该位于字符串的开头或结尾处,我已经将字符串&#39; app&#39;大概两个&#39;%&#39;,以便找到应用程序&#39;字符串内的任何字符串。