gpt4 book ai didi

sqlite - sqlite搜索多列

转载 作者:行者123 更新时间:2023-12-03 17:59:20 25 4
gpt4 key购买 nike

我试图对表中的所有列执行区分大小写的搜索,所以我做了这样的事情

Select * From mytable Where col1 || '--' || col2 || '--' || etc like '%SomeValue%'

但对于大写字母和小写字母,它始终返回相同的结果。如果我这样做

Select * From mytable Where col1 like '%SomeValue%' OR col1 like '%SomeValue%' etc

我得到了预期的结果。这里的问题是我不能使用第二个查询,因为我有大约36列要搜索,并且最多写36次col1 like '%SomeValue%'是不必要的。

有人有什么解决方案吗?

最佳答案

一种解决方案是使用glob代替like

sqlite> select * from sqlite_master where ('foo' || '--' || 'bar') like '%Bar%';
table|t|t|2|CREATE TABLE t (a)
sqlite> select * from sqlite_master where ('foo' || '--' || 'bar') glob '*Bar*';
sqlite> select * from sqlite_master where ('foo' || '--' || 'bar') glob '*bar*';
table|t|t|2|CREATE TABLE t (a)
sqlite>


另一种解决方案是使用 pragma case_sensitive_like

sqlite> PRAGMA case_sensitive_like = 1;
sqlite> select * from sqlite_master where ('foo' || '--' || 'bar') like '%Bar%';
sqlite> select * from sqlite_master where ('foo' || '--' || 'bar') like '%bar%';
table|t|t|2|CREATE TABLE t (a)
sqlite>

关于sqlite - sqlite搜索多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12737396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com