SQLite模糊查询一个单词的语句是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite模糊查询一个单词的语句是啥?相关的知识,希望对你有一定的参考价值。
比如我要在表words的eng列里查询有没有chi这个词,chi有可能是一个词组中的一个词,比如chi hi,或者hi chi,又或者hi chi hi,我想要查询结果中可以出现这三个词组和chi,但是却不会出现chinese这样包含chi三个字母的其他词,这要怎么做?
关键就是chi前面或者后面有空格。select * from words where eng like '%chi %' or eng like '% chi%'
注意期中的空格 参考技术A 可以使用 like 与 or 语句实现。下面是SQL语句
select * from words where eng like '% chi%' or eng like '%chi %';
--关键的是chi前后的空格 参考技术B 只能用正则匹配法。
sqlite中多个JOIN语句的优先级是啥?
【中文标题】sqlite中多个JOIN语句的优先级是啥?【英文标题】:What is the precedence of multiple JOIN statements in sqlite?sqlite中多个JOIN语句的优先级是什么? 【发布时间】:2010-10-23 16:50:40 【问题描述】:令我惊讶的是,以下两个查询返回了不同的结果:
SELECT *
FROM foo
JOIN bar
ON bar.id=foo.bar_id
JOIN baz
ON baz.id=foo.baz_id
LEFT JOIN zig
ON zig.foo_id=foo.id;
和:
SELECT *
FROM foo
LEFT JOIN zig
ON zig.foo_id=foo.id
JOIN bar
ON bar.id=foo.bar_id
JOIN baz
ON baz.id=foo.baz_id;
我想你在zig
上LEFT JOIN
应该没关系,因为在加入bar
和baz
时我没有使用zig
的列。但是,似乎在后者中,bar
和 baz
的 JOIN
-ing 吞噬了 zig
具有 null
值的行...这是为什么呢?
【问题讨论】:
我开始怀疑这是对我的问题的不准确简化 - 这两个查询确实应该是相同的,我正在做其他事情。 【参考方案1】:这些是不同的,因为您的左连接在语句中的位置。请记住,联接不仅针对您要比较字段的两个表,还包括您在该点和下一个表之前联接的所有内容。
因此,在第一个语句中,您将在第一次连接中从 foo 中过滤掉行(那些没有 bar_id = bar.id 的行)
但在第二个语句中,您将所有 foo 包含在左连接中。
这比我开始写这篇文章时的预期更难表达,如果对你有意义,请告诉我。
【讨论】:
但是,即使在第二个语句中,我将所有 foo 与第一个左连接包括在内,不应该在后者中过滤掉相同的行(没有 bar_id 的行)加入?【参考方案2】:这很好用。我错了。
【讨论】:
以上是关于SQLite模糊查询一个单词的语句是啥?的主要内容,如果未能解决你的问题,请参考以下文章