Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每列的SQLite WHERE子句?_Sql_Sqlite - Fatal编程技术网

每列的SQLite WHERE子句?

每列的SQLite WHERE子句?,sql,sqlite,Sql,Sqlite,SQLite是否提供了一种搜索表中每一列的搜索键的方法 SELECT * FROM table WHERE id LIKE ... 选择列id中找到..的所有行。但是为了只在id列中搜索,如果找到了searchstring,我想在每一列中搜索。我认为这是行不通的: SELECT * FROM table WHERE * LIKE ... 可能吗?或者下一个简单的方法是什么 我使用Python3查询SQLite数据库。在执行查询并返回数据后,我是否应该通过字典进行搜索?一个简单的技巧是: SE

SQLite是否提供了一种搜索表中每一列的搜索键的方法

SELECT * FROM table WHERE id LIKE ...
选择列
id
中找到
..
的所有行。但是为了只在
id
列中搜索,如果找到了searchstring,我想在每一列中搜索。我认为这是行不通的:

SELECT * FROM table WHERE * LIKE ...
可能吗?或者下一个简单的方法是什么


我使用Python3查询SQLite数据库。在执行查询并返回数据后,我是否应该通过字典进行搜索?

一个简单的技巧是:

SELECT *
FROM table
WHERE ((col1+col2+col3+col4) LIKE '%something%')

如果这4列中的任何一列包含“something”一词,这将选择该记录。

一个简单的技巧是:

SELECT *
FROM table
WHERE ((col1+col2+col3+col4) LIKE '%something%')

如果这4列中的任何一列包含单词“something”,则会选择该记录。

否;您必须列出或连接查询中的每一列,或者重新组织数据库以减少列数


SQLite提供了一个可以一次搜索所有列的功能,但是这样的表不能有效地处理任何其他查询。

No;您必须列出或连接查询中的每一列,或者重新组织数据库以减少列数


SQLite提供了一个可以一次搜索所有列的功能,但是这样的表不能有效地处理任何其他查询。

如果我理解了您的问题,我不太确定。 如果希望返回整行,当id=searchkey时,则:

select * from table where id=searchkey;
如果要使用正确的搜索键从行中选择特定列,请执行以下操作:

select col1, col2, col3 from table where id=searchkey;
如果要在多个列中搜索“id”:首先要缩小可以在哪些列中找到它-您不想搜索整个表!然后:

select * from table where col1=searchkey or col2=searchkey or col3=searchkey;

如果我理解你的问题,我不太确定。 如果希望返回整行,当id=searchkey时,则:

select * from table where id=searchkey;
如果要使用正确的搜索键从行中选择特定列,请执行以下操作:

select col1, col2, col3 from table where id=searchkey;
如果要在多个列中搜索“id”:首先要缩小可以在哪些列中找到它-您不想搜索整个表!然后:

select * from table where col1=searchkey or col2=searchkey or col3=searchkey;

你看过全文选项了吗?不是真的。通常,您需要为搜索的每个列命名。但是,如果您在许多列中搜索文本,您可能会对全文索引感兴趣。您看过全文选项了吗?不是真的。通常,您需要为搜索的每个列命名。但是,如果您在许多列中搜索文本,您可能会对全文索引感兴趣。但是每一列都必须手动输入,对吗?或者有没有一种方法可以简单地自动选择所有列?我不认为再选择是可能的。有什么诀窍可以让它运行吗?我不会用这个得到结果从personen中选择*,其中((vorname+nachname)如“%David%”)``@nuts:您正在使用哪些RDBMS?如果您的查询不区分大小写,它看起来很好。@RagingBull它是常规的SQlite3,不区分大小写。不过没关系,我处理的方式不同。谢谢:)有人能解释一下“+”在这个上下文中的作用吗?i、 它到底是如何工作的?我在网上的任何地方都找不到这方面的文档。但每一列都必须手动输入,对吗?或者有没有一种方法可以简单地自动选择所有列?我不认为再选择是可能的。有什么诀窍可以让它运行吗?我不会用这个得到结果从personen中选择*,其中((vorname+nachname)如“%David%”)``@nuts:您正在使用哪些RDBMS?如果您的查询不区分大小写,它看起来很好。@RagingBull它是常规的SQlite3,不区分大小写。不过没关系,我处理的方式不同。谢谢:)有人能解释一下“+”在这个上下文中的作用吗?i、 它到底是如何工作的?我在网上的任何地方都找不到相关文档。根据文档,FTS表的功能在默认情况下未启用,需要重新编译二进制文件。根据文档,FTS表的功能在默认情况下未启用,需要重新编译二进制文件。