问题标签 [sql-like]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10985 浏览

java - 带有 LIKE 的 Oracle 中的重音和不区分大小写的排序规则

我发现这个答案很有用: Accent and case insensitive COLLATE equivalent in Oracle,但我的问题是关于使用版本 9 Oracle db 进行 LIKE 搜索。

我试过这样的查询:

但从未返回任何结果。

我创建了一个小 Java 文件来测试:

我没有任何成功的谷歌搜索,有人有任何解决方案吗?

我想对名称的一部分执行搜索并返回使用不区分大小写和重音的匹配结果。

0 投票
11 回答
13449 浏览

sql - 仅使用通配符 (%) 作为值的 SQL LIKE 性能

我想知道与根本没有 where 子句相比,使用 LIKE 关键字和通配符作为值的查询性能如何。

考虑一个 where 子句,例如“WHERE a LIKE '%'”。这将匹配列“a”的所有可能值。这与根本没有 where 子句相比如何。

我问这个的原因是我有一个应用程序,其中有一些用户可以指定要搜索的值的字段。在某些情况下,用户想要所有可能的结果。我目前正在使用这样的单个查询:

可以提供 '%' 和 '%' 的值以匹配 a 和或 b 的所有可能值。这很方便,因为我可以在我的应用程序中为此使用单个命名查询。我想知道对此的性能考虑是什么。查询优化器是否会减少 LIKE '%' 以简单地匹配所有?我意识到,因为我使用的是命名查询(准备好的语句),这也可能会影响答案。我意识到答案可能是特定于数据库的。那么具体来说,这将如何在 Oracle、MS SQL Server 和 Derby 中工作。

另一种方法是根据用户输入通配符使用 3 个单独的查询。

A 是通配符查询:

B 是通配符查询:

A 和 B 是通配符:

没有通配符:

显然,只有一个查询是最简单和最容易维护的。如果性能仍然很好,我宁愿只使用一个查询。

0 投票
12 回答
329617 浏览

sql-server - SQL Server 日期时间 LIKE 选择?

在 MySQL 中

SQL Server 中的语法是什么?

0 投票
5 回答
208851 浏览

sql - SQL Not Like 语句不起作用

我在存储过程中有以下代码。

NOT LIKE 语句不起作用,是的,在任何人说什么之前,有 COMMENT 列不包括 CORE 的项目,所有其他列都可以。

有谁知道这有什么问题?

0 投票
2 回答
7811 浏览

sql-server - SQL Server Select Where value LIKE(临时表值)

我在 SQL Server 2008 中有一个函数,它接受一个字符串:'A、B、C、D' 并将其拆分并创建一个值表。

我现在想搜索一个表(用户),其中列值类似于上表中的行(姓氏)之一。

这就是我想做的:

如果以上都做不到,你还会怎么做?某种循环?

我正在使用 SQL Server 2008

0 投票
5 回答
10942 浏览

sql - 在索引号列上使用“like”的 Oracle 查询,性能不佳

在查询 1 上,即使 id 是索引列,也会执行全表扫描。查询 2 实现了相同的结果,但速度更快。如果查询 1 运行返回一个索引列,则它会快速返回,但如果返回非索引列或整行,则查询需要更长的时间。

在查询 3 中,它运行得很快,但列 'code' 是 VARCHAR2(10) 而不是 NUMBER(12),并且索引方式与 'id' 相同。

为什么查询 1 没有发现它应该使用索引?是否应该更改某些内容以允许索引数字列更快地执行?

[查询1]

解释计划
SELECT STATEMENT ALL_ROWS
成本:67 字节:2,592 基数:4
2 COUNT STOPKEY
    1 TABLE ACCESS FULL TABLE people
     成本:67 字节:3,240 基数:5

[查询2]

解释计划
SELECT STATEMENT ALL_ROWS
成本:11 字节:2,620 基数:4
5 COUNT STOPKEY
    4 表访问按索引行表人员
    成本:3 字节:648 基数:1
        3 NESTED LOOPS
        成本:11 字节:2,620 基数:4
            1 INDEX FAST FULL扫描索引 people_IDX3
            成本:2 字节:54,796 基数:7,828
            2 索引范围 扫描索引 people_IDX3
            成本:2 基数:1

[查询3]

解释计划
SELECT STATEMENT ALL_ROWS
成本:6 字节:1,296 基数:2
   3 COUNT STOPKEY
      2 表访问按索引行表人员
      成本:6 字节:1,296 基数:2
         1 INDEX RANGE SCAN INDEX people_IDX4
         成本:3 基数:2

0 投票
4 回答
16122 浏览

sql - Progress DB SQL 的 LIKE 运算符

我正在尝试在 Progress SQL 中执行类似的操作(这不是 POSTGRES!)

但是 Progress 不支持 LIKE 运算符。INSTR看起来它可能会完成这项工作,但它是一个 Progress 扩展,我正在使用的数据库不支持它。是否有另一种使用标准 ODBC 函数来实现这一点的方法?

谢谢

0 投票
1 回答
536 浏览

sqlite - 在 sqlite 中使用 LIKE 区分大小写的便捷方式

如我所见,如果我切换 PRAGMA case_sensitive_like=ON,LIKE 运算符可以优化查询。我测量过,它确实有效,查询“LIKE someth%”在比较大的二进制索引表上变得快十倍。但问题是我的库作为我的应用程序的附加组件实现,它使用它连接的任何数据库维护自己的表。所以问题是

  • 我无法读取case_sensitive_like,因为它只支持设置,不支持读取。所以我暂时无法读取状态并在查询后返回,
  • 作为一个应该遵守数据库主要功能的插件,我不应该将设置更改为我的需要,因为它会影响其他例程。
  • 正如我所见,我没有直接调用 optimizid 查询的 Like(区分大小写)内部等效项。例如使用 LIKECASESENSITIVE 而不是 LIKE
  • 我可以调用 sqlite3_create_function,但我不知道我是否可以在内部调用 LIKE(CASE SENSITIVE)。
0 投票
3 回答
1059 浏览

c# - 存储在内存中的数据集中的“Like”函数(与 SQL 中的 like 函数相同)

假设我有一个大数据集,我想在数据集中运行一个“like”函数,例如列 - 名称

有没有办法在数据集中运行类似的语句?

ASP.NET 可以吗?

我不想对数据库运行查询。

0 投票
8 回答
2028 浏览

sql - SQL 查询,我可以将 WHERE 作为通配符吗?

是否可以在 SQL 查询中将 WHERE 作为通配符?

我有这个简单的查询:

假设变量 q 等于“John Doe”。然后我希望查询在 Firstname AND/OR (??) Lastname 中搜索 q。

我只能想办法。

非常感谢/安德烈亚斯

编辑/更新:

我会尽量简化我的问题。

假设我有一个包含 ID、名字、姓氏和电子邮件字段的数据库表。(带有值的 fx:5,john,Doe,JD@hotmail.com)

然后,我在页面上有一个简单的 html 表单,其中包含一个搜索字段(一个带有提交按钮的简单文本输入),访问者可以在该页面上搜索上述任何字段。

如果他/她搜索单词“John”、“Doe”或“hotmail”,那么它与在我的 ASP 页面上获取搜索字符串作为变量“q”的 SQL 查询完美配合,如下所示:

现在我的问题是:如果访客输入“John Doe”,我该怎么办?

我希望能够获得我的数据库中名为“John Doe”的所有人的列表