标签: sql-like

喜欢SQLite(甚至是MysQL)

LIKE关键字是否会在SQLite和/或MySQL中使用索引?

我会理解通配符匹配可能不会使用索引,但是如何从比较开始?

mysql sqlite sql-like

4
推荐指数
1
解决办法
217
查看次数

如何在一个查询中使用LIKE和IN运算符?

我的简单sql语句是这样的:

SELECT USERNAME FROM ALL_USERS;
Run Code Online (Sandbox Code Playgroud)

但我想从结果中过滤系统用户.我搜索但找不到Oracle提供的任何内容; 所以我尝试了这样的声明,它不起作用:

select username from all_users where username not like '%SH%' 
    or username not like '%SYS%' 
    or username not in ('ANONYMOUS',            
                        'DBSNMP',
                        'MGMT_VIEW',
                        'ORDPLUGINS',
                        'OUTLN',
                        'SI_INFORMATION_SCHEMA',
                        'WK_TEST',
                        'WKPROXY',
                        'XDB'); 
Run Code Online (Sandbox Code Playgroud)

这不起作用.我应该如何修改我的查询以获得所需的输出,或者可能有oracle提供的东西来获取预定义的系统帐户?

sql oracle oracle11g sql-like

4
推荐指数
1
解决办法
1535
查看次数

按空格分隔关键字并搜索MySQL数据库

我正在使用 PHP 和 MySQL。我将在下面提供一个简单的表格:

------------------------------------------------------
|  id |                    text                      |
------------------------------------------------------
|  1  | The quick brown fox jumped over the lazy dog | 
------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我希望用户能够使用以空格分隔的关键字进行搜索。我有一个简单的 SQL 查询,SELECT * FROM table WHERE text LIKE %[$keyword]%这意味着如果我搜索“The quick fox”,我不会得到任何结果。有没有办法用空格分隔关键字,所以如果我搜索“The quick fox”,它将运行 3 次搜索。一个用于“The”,一个用于“quick”,一个用于“fox” - 删除所有空格。尽管它应该只显示一个结果,因为它都属于同一行而不是 3 个,因为所有 3 个关键字都与该行中的数据匹配。

做到这一点的最佳方法是什么?总是欢迎所有可以做得更好的建议。谢谢!

[编辑]

现在才想到这一点,用逗号 (,) 分隔关键字会是更好的选择吗?

mysql keyword sql-like

4
推荐指数
1
解决办法
3240
查看次数

带有范围的 MySQL LIKE 不起作用

我有一个数据库表mytable,列采用 Varchar 格式,列日期为 Datetime 值。我想用按日期分组的某些参数来计算名称。这是我所做的:

SELECT
    CAST(t.date AS DATE) AS 'date',
    COUNT(*) AS total,
    SUM(LENGTH(LTRIM(RTRIM(t.name))) > 4 
        AND (LOWER(t.name) LIKE '%[a-z]%')) AS 'n'
FROM
    mytable t
GROUP BY 
    CAST(t.date AS DATE)
Run Code Online (Sandbox Code Playgroud)

似乎这里的范围语法有问题,如果我只是这样做,LIKE 'a%'它确实会正确计算所有以“a”开头的字段。但是,上面的查询为 n 返回 0,尽管应该计算包含至少一个字母的所有字段。

mysql sql-like

4
推荐指数
2
解决办法
9562
查看次数

Rails 4 - 在SQL查询中使用LIKE运算符防止SQL注入

我想对我的Rails 4应用程序使用以下查询,但我担心SQL注入攻击:

@persons = People.where("persons.name LIKE ?", "%#{params[:search]}%")
Run Code Online (Sandbox Code Playgroud)

有人能告诉我写上述陈述的安全方法吗?我尝试了以下但不确定它是否是SQL注入证明:

search = "%" + params[:search] + "%"
@persons = People.where("persons.name LIKE ?", search)
Run Code Online (Sandbox Code Playgroud)

谢谢!

sql-injection params ruby-on-rails-4 sql-like

4
推荐指数
2
解决办法
5588
查看次数

带有 if 语句和 LIKE 运算符的 MySql SELECT

我在一个广告网站上工作。

我有一张桌子,每天有一列。我需要在表格中检查哪些广告被保存为默认值以仅更新这些广告。

我试过这个,但它不起作用。

SELECT Monday if (Monday LIKE '%default%'),
Tuesday if (Tuesday LIKE '%default%')
FROM `Ad_Relationshp`
Run Code Online (Sandbox Code Playgroud)

MySql 给了我这个错误:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取Ad_Relationshp在第 1 行的“if (Monday LIKE '%default%') FROM LIMIT 0”附近使用的正确语法。我尝试将语法更改为我能想到的所有内容,但我仍然遇到同样的错误。

mysql select if-statement sql-like

4
推荐指数
1
解决办法
1万
查看次数

使用带有 LIKE % 运算符的绑定变量

在我的 PL/SQL 中有这个使用绑定变量的大动态 SQL。我使用 DBMS_SQL 包来绑定和执行生成的查询。

根据某些标准,将 where 子句添加到动态 SQL 中。当我只使用“in”或“=”来匹配我的绑定变量时,一切正常,结果返回速度非常快。

例子:

(servedparty = :bv_ or servedpartyimsi = :bv_)

但是,当我执行以下操作时:

(servedpartyimei like :bv_)
Run Code Online (Sandbox Code Playgroud)

并提供一个像 12345679890% 这样的值,查询需要非常非常长的时间。

我也试过这样的事情

(servedpartyimei like :bv_||'%')

然后提供没有 '%' 的值,但它给出了相同的结果

当我在没有绑定变量的情况下执行查询但只放置硬编码值时,结果也会立即返回。

我在这里做错了吗?不要像 LIKE 运算符那样绑定变量?有任何想法吗?

谢谢你。

oracle plsql bind-variables sql-like

4
推荐指数
1
解决办法
2881
查看次数

postgresql 将文本搜索到文本数组中

我有一张桌子 t1

id  |  names
----|-------------------------
1   |  {jully , alex , sarah}
2   |  {bety , cate , jenifer}
3   |  {adam , pit , joee}
4   |  {piter , mat , andy}
Run Code Online (Sandbox Code Playgroud)

所以,我需要行至少有一个以“a”开头的名称,我需要的结果在下面

第 1 行:亚历克斯

第 3 行:亚当

第 4 行:安迪

id   |   names
-----|-------------------------
1    |  {jully , alex , sarah}
3    |  {adam , pit , joee}
4    |  {piter , mat , andy}
Run Code Online (Sandbox Code Playgroud)

像这样的查询

select * from t1 where 'a' like% any t1.name
Run Code Online (Sandbox Code Playgroud)

arrays postgresql any sql-like

4
推荐指数
1
解决办法
2597
查看次数

Elasticsearch 等于 SQL %Like%

这里开始,我向自己询问此类查询的 elasticsearch 语法:

WHERE text LIKE "%quick%"
  AND text LIKE "%brown%"
  AND text LIKE "%fox%" 
Run Code Online (Sandbox Code Playgroud)

我的尝试(不幸的是没有成功)

  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "must": [
              {
                "terms": {
                  "text": [
                    "*quick*",
                    "*brown*",
                    "*fox*"
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
Run Code Online (Sandbox Code Playgroud)

sql search elasticsearch sql-like elasticsearch-5

4
推荐指数
1
解决办法
8621
查看次数

Postgres 类型 json 详细信息的无效输入语法:令牌“%”无效

我正在尝试检查某些文本是否包含文本和 Postgres 数组中的值的串联,例如:

SELECT true from jsonb_array_elements('["a", "b"]'::jsonb) as ids 
WHERE 'bar/foo/item/b' LIKE '%item/' || ids->>'id' || '%'
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR: invalid input syntax for type json Detail: Token "%" is invalid. Position: 95 Where: JSON data, line 1: %...
Run Code Online (Sandbox Code Playgroud)

如何利用数组的值,将它们与文本连接起来并检查LIKE表达式?

我已经尝试了几种明确添加演员表的想法::jsonb,但到目前为止还没有运气。

postgresql sql-like jsonb

4
推荐指数
1
解决办法
1万
查看次数